From 4eb41723cf6459eb9b88022d798d4e8b01b40ff2 Mon Sep 17 00:00:00 2001 From: Andreas Stephanides Date: Sun, 23 May 2021 10:14:48 +0000 Subject: [PATCH] init new dev project --- Dockerfile.nginx | 2 ++ Dockerfile.theia | 11 +++++++ README.md | 7 +++++ build_push | 9 ++++++ config/default.conf | 70 +++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 0 6 files changed, 99 insertions(+) create mode 100644 Dockerfile.nginx create mode 100644 Dockerfile.theia create mode 100644 README.md create mode 100755 build_push create mode 100644 config/default.conf create mode 100644 requirements.txt diff --git a/Dockerfile.nginx b/Dockerfile.nginx new file mode 100644 index 0000000..a42b6b2 --- /dev/null +++ b/Dockerfile.nginx @@ -0,0 +1,2 @@ +from nginx:alpine +copy ./config/default.conf /etc/nginx/conf.d/default.conf diff --git a/Dockerfile.theia b/Dockerfile.theia new file mode 100644 index 0000000..65d57f7 --- /dev/null +++ b/Dockerfile.theia @@ -0,0 +1,11 @@ +from theiaide/theia-python:latest +RUN apt-get update \ + && apt-get -y upgrade \ + && apt-get -y install libgs-dev \ + && rm -rf /var/lib/apt/lists/* + +COPY ./requirements.txt . +run pip3 install --upgrade pip && pip3 install -r requirements.txt && pip3 install pytest pylint bandit flake8 black pytest-django six pytest-mock +#COPY . /home/project +RUN wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.2.tgz && tar -xvf docker-20.10.2.tgz docker/docker && cp docker/docker /usr/bin/ +#ENTRYPOINT node /home/theia/src-gen/backend/main.js /home/project/ --hostname=0.0.0.0 \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..179c7d3 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ + + +# About +Dieses kleine Projekt zeigt wie mit Docker und einigen Tools eine kleine Online Entwicklungsumgebung aufgesetzt werden kann. +Primär ist diese Umgebung für Python Projekte gedacht, kann aber insbesondere auch für Node.js und andere Themen genutzt werden. + + diff --git a/build_push b/build_push new file mode 100755 index 0000000..ca25891 --- /dev/null +++ b/build_push @@ -0,0 +1,9 @@ +#/bin/bash +export REGISTRY="docker.triton2.fet.at" + +# Build a development Image with Theia and all content +#docker build --no-cache -f Dockerfile.nginx -t $REGISTRY/dev_nginx:latest . +#docker push $REGISTRY/dev_nginx:latest + +docker build --no-cache -f Dockerfile.theia -t $REGISTRY/dev_theia:latest . +docker push $REGISTRY/dev_theia:latest \ No newline at end of file diff --git a/config/default.conf b/config/default.conf new file mode 100644 index 0000000..3561da4 --- /dev/null +++ b/config/default.conf @@ -0,0 +1,70 @@ +server { + listen 80; + listen [::]:80; + server_name localhost; + resolver 127.0.0.11 valid=30s; + set $theia theia; + set $etherpad etherpad; + set $dokuwiki dokuwiki; + #charset koi8-r; + #access_log /var/log/nginx/host.access.log main; + client_max_body_size 10M; + location / { +# root /usr/share/nginx/html; + # index index.html index.htm; + proxy_ssl_server_name on; + proxy_ssl_verify off; + + proxy_pass http://$theia:5001; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + + } + location /dokuwiki { + rewrite /dokuwiki/(.*) /$1 break; + rewrite ^/dokuwiki$ /dokuwiki/ permanent; + proxy_pass http://$dokuwiki:8080; + proxy_redirect / /dokuwiki/; + proxy_set_header Host $host; + proxy_buffering off; + } + location /etherpad { + rewrite /etherpad/(.*) /$1 break; + rewrite ^/etherpad$ /etherpad/ permanent; + proxy_pass http://$etherpad:9001; + proxy_redirect / /etherpad/; + proxy_set_header Host $host; + proxy_buffering off; + sub_filter /static/plugins/ /etherpad/static/plugins/; + sub_filter /etherpad/etherpad/static/plugins/ /etherpad/static/plugins/; + sub_filter_once off; + } + location /dev { + rewrite_log on; + rewrite /dev/(.*) /$1 break; + rewrite ^/dev$ /dev/ permanent; + proxy_set_header Host $host; + proxy_set_header Proxy ""; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarde-Proto $scheme; + + + proxy_buffering off; + proxy_pass http://$theia:3000; + } + + #error_page 404 /404.html; + + # redirect server error pages to the static page /50x.html + # + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + +} + diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e69de29