From 01630194fcbca1899639d777a900dd430fcce650 Mon Sep 17 00:00:00 2001 From: Anton Shepilov Date: Thu, 13 Apr 2023 15:27:10 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=B3=20Set=20up=20envs=20for=20the=20TD?= =?UTF-8?q?rive=20(#19)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - remove php upstream from nginx config - fix docker-compose configuration --- .gitignore | 19 ---------- tdrive/docker-compose.dev.mongo.yml | 42 +++++++++++++++------ tdrive/docker-compose.onpremise.mongo.yml | 37 +++++++++++++++--- tdrive/docker/bash/Dockerfile | 6 +++ tdrive/docker/tdrive-frontend/entrypoint.sh | 2 - tdrive/docker/tdrive-frontend/site.conf | 11 ------ tdrive/docker/tdrive-node/Dockerfile | 15 ++++---- 7 files changed, 75 insertions(+), 57 deletions(-) create mode 100644 tdrive/docker/bash/Dockerfile diff --git a/.gitignore b/.gitignore index 9aa85352..be49b00f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,3 @@ -### PhpStorm ### -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - *.DS_Store # User-specific stuff: @@ -47,18 +43,12 @@ atlassian-ide-plugin.xml # Cursive Clojure plugin .idea/replstate.xml -# Ruby plugin and RubyMine -/.rakeTasks - # Crashlytics plugin (for Android Studio and IntelliJ) com_crashlytics_export_strings.xml crashlytics.properties crashlytics-build.properties fabric.properties -### PhpStorm Patch ### -# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 - # *.iml # modules.xml # .idea/misc.xml @@ -90,8 +80,6 @@ fabric.properties /app/config/parameters.ini # Managed by Composer -/app/bootstrap.php.cache -/var/bootstrap.php.cache /bin/* !bin/console !bin/symfony_requirements @@ -102,10 +90,6 @@ fabric.properties /web/upload/ /web/public/ -# PHPUnit -/app/phpunit.xml -/phpunit.xml - # Build data /build/ /builds/ @@ -132,9 +116,6 @@ docker-compose.yml /app/Ressources/DatabaseEncryption/.Halite.key /backend/websockets_server/false/ -### AWS ### -/app/config/aws_config.yml - ### Test ### /tests/code_coverage/ /web/detached/* diff --git a/tdrive/docker-compose.dev.mongo.yml b/tdrive/docker-compose.dev.mongo.yml index 50653ff0..617dbb4d 100644 --- a/tdrive/docker-compose.dev.mongo.yml +++ b/tdrive/docker-compose.dev.mongo.yml @@ -12,25 +12,20 @@ services: - tdrive_network node: - image: tdrive/tdrive-node - container_name: node + build: + context: . + dockerfile: docker/tdrive-node/Dockerfile + target: production + container_name: tdrive-node + hostname: tdrive_node ports: - - 4000:3000 - - 8000:3000 + - 4000:4000 - 9229:9229 environment: - DEV=dev - SEARCH_DRIVER=mongodb - DB_DRIVER=mongodb - PUBSUB_TYPE=local - - STATIC_ROOT=/frontend - build: - context: . - dockerfile: docker/tdrive-node/Dockerfile - target: development - volumes: - - ./backend/node:/usr/src/app - - ./frontend/dist:/frontend - ./docker-data/documents/:/storage/ depends_on: - mongo @@ -39,6 +34,29 @@ services: networks: - tdrive_network + fronend: + build: + context: . + dockerfile: docker/tdrive-frontend/Dockerfile + container_name: tdrive_frontend + environment: + - DEV=production + - SSL_CERTS=selfsigned + - NODE_HOST=http://tdrive_node:4000 + ports: + - 80:80 + - 443:443 + depends_on: + - node + volumes: + - ./docker-data/logs/nginx/:/var/log/nginx + - ./docker-data/letsencrypt/:/etc/letsencrypt/ + - ./docker-data/drive-preview/:/tdrive-core/web/medias/ + - ./docker-data/uploads/:/tdrive-core/web/upload/ + - ./docker-data/ssl:/etc/nginx/ssl + networks: + - tdrive_network + networks: tdrive_network: driver: bridge diff --git a/tdrive/docker-compose.onpremise.mongo.yml b/tdrive/docker-compose.onpremise.mongo.yml index d8c1aab5..9127b1da 100644 --- a/tdrive/docker-compose.onpremise.mongo.yml +++ b/tdrive/docker-compose.onpremise.mongo.yml @@ -6,21 +6,46 @@ services: image: mongo volumes: - ./docker-data/mongo:/data/db + networks: + - tdrive_network node: - image: tdrive/tdrive-node:latest - ports: - - 3000:3000 - - 8000:3000 + image: docker-registry.linagora.com/tdrive/tdrive-node + hostname: tdrive_node environment: - DEV=production - SEARCH_DRIVER=mongodb - DB_DRIVER=mongodb - PUBSUB_TYPE=local - volumes: - - ./configuration/backend-node/production.json:/usr/src/app/config/production.json - ./docker-data/documents/:/storage/ depends_on: - mongo links: - mongo + networks: + - tdrive_network + + fronend: + image: docker-registry.linagora.com/tdrive/tdrive-frontend + environment: + - DEV=production + - SSL_CERTS=selfsigned + - NODE_HOST=http://tdrive_node:4000 + ports: + - 80:80 + - 443:443 + depends_on: + - node + volumes: + - ./docker-data/logs/nginx/:/var/log/nginx + - ./docker-data/letsencrypt/:/etc/letsencrypt/ + - ./docker-data/drive-preview/:/tdrive-core/web/medias/ + - ./docker-data/uploads/:/tdrive-core/web/upload/ + - ./docker-data/ssl:/etc/nginx/ssl + networks: + - tdrive_network + +networks: + tdrive_network: + driver: bridge + diff --git a/tdrive/docker/bash/Dockerfile b/tdrive/docker/bash/Dockerfile new file mode 100644 index 00000000..f83d9038 --- /dev/null +++ b/tdrive/docker/bash/Dockerfile @@ -0,0 +1,6 @@ +FROM ubuntu +RUN apt-get update && \ + apt-get install -y iputils-ping && \ + apt-get install -y telnet && \ + apt-get install -y wget +CMD bash \ No newline at end of file diff --git a/tdrive/docker/tdrive-frontend/entrypoint.sh b/tdrive/docker/tdrive-frontend/entrypoint.sh index 14c894ae..dabcfd1d 100755 --- a/tdrive/docker/tdrive-frontend/entrypoint.sh +++ b/tdrive/docker/tdrive-frontend/entrypoint.sh @@ -39,10 +39,8 @@ case $SSL_CERTS in esac NODE_HOST="${NODE_HOST:-http://node:3000}" -PHP_UPSTREAM="${PHP_UPSTREAM:-php:9000}" export NODE_HOST export PHP_UPSTREAM envsubst '$${NODE_HOST} $${NGINX_LISTEN}' < /etc/nginx/sites-available/site.template > /etc/nginx/sites-enabled/site -echo "upstream php-upstream { server ${PHP_UPSTREAM}; }" > /etc/nginx/conf.d/upstream.conf nginx -g "daemon off;" diff --git a/tdrive/docker/tdrive-frontend/site.conf b/tdrive/docker/tdrive-frontend/site.conf index 6d742227..25b6b98e 100644 --- a/tdrive/docker/tdrive-frontend/site.conf +++ b/tdrive/docker/tdrive-frontend/site.conf @@ -97,15 +97,4 @@ server { rewrite ^(.*)$ /app.php/$1 last; } - location ~ ^/(app|app_dev|config|dev\/.*)\.php(/|$) { - fastcgi_pass php-upstream; - fastcgi_split_path_info ^(.+\.php)(/.*)$; - include fastcgi_params; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param HTTPS off; - fastcgi_buffer_size 128k; - fastcgi_buffers 4 256k; - fastcgi_busy_buffers_size 256k; - } - } diff --git a/tdrive/docker/tdrive-node/Dockerfile b/tdrive/docker/tdrive-node/Dockerfile index 50fb6906..edd4566f 100755 --- a/tdrive/docker/tdrive-node/Dockerfile +++ b/tdrive/docker/tdrive-node/Dockerfile @@ -28,13 +28,14 @@ FROM node-base as installed-libs COPY backend/node/ . #Install dev dependancies for build -RUN NODE_ENV=development npm install && \ - #Build in production mode - export NODE_ENV=production && \ - npm run build && \ - rm -rf node_modules && \ - #Install prod dependancies after build - npm install --legacy-peer-deps +RUN export NODE_ENV=development +RUN npm install +#Build in production mode +RUN export NODE_ENV=production +RUN npm run build +RUN rm -rf node_modules +#Install prod dependancies after build +RUN npm install --legacy-peer-deps # Development Stage FROM installed-libs as development