From 80de57a0879697b1bfbbd1e7adab40720022c956 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Tue, 26 Apr 2022 08:55:07 +0200 Subject: [PATCH] WIP: Docker enhancement * reduces all needed containers into a single one * simplifies initial startup command by adding docker-entrypoint.sh --- Dockerfile | 8 +++++--- docker-compose.yml | 28 ++-------------------------- docker-entrypoint.sh | 7 +++++++ nginx/nginx.conf => nginx.conf | 0 nginx/Dockerfile | 4 ---- 5 files changed, 14 insertions(+), 33 deletions(-) create mode 100755 docker-entrypoint.sh rename nginx/nginx.conf => nginx.conf (100%) delete mode 100644 nginx/Dockerfile diff --git a/Dockerfile b/Dockerfile index 290c3d08..ad61d714 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,14 +7,16 @@ WORKDIR /konova RUN apt update RUN apt install -y gdal-bin redis-server nginx -# Copy requirements file into workspace +# Copy requirements file into workspace and install all dependencies COPY ./requirements.txt /konova/ RUN pip install --upgrade pip RUN pip install -r requirements.txt -# Copy rest of project into workspace +# Remove nginx default configuration and replace with own configuration RUN rm /etc/nginx/sites-enabled/default -COPY ./nginx/nginx.conf /etc/nginx/conf.d +COPY ./nginx.conf /etc/nginx/conf.d + +# Copy rest of project into workspace COPY . /konova/ # Move static files in designated folder diff --git a/docker-compose.yml b/docker-compose.yml index 74f8c0b4..c7bd3f4b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,30 +1,19 @@ version: '3.3' services: - #redis: - # image: redis - # container_name: "konova-redis-cache" - # volumes: - # - /redis/data:/bitnami/redis/data - # environment: - # - REDIS_PASSWORD=CHANGE_ME - konova: external_links: - postgis:db - arnova-nginx-server:arnova build: . container_name: "konova-docker" - command: sh -c 'service nginx start && service redis-server start && celery -A konova worker --detach && gunicorn konova.wsgi:application --bind 0.0.0.0:8000' + command: ./docker-entrypoint.sh restart: always volumes: - .:/konova - - /path/to/host/folder:/konova_uploaded_files - - static_file_volume:/konova/static # Point to the volume for static files. Shared with nginx service + - /data/apps/konova/uploaded_files:/konova_uploaded_files ports: - "1337:80" - #depends_on: - # - redis environment: - POSTGRES_NAME=konova - POSTGRES_PORT=5432 @@ -37,22 +26,9 @@ services: - SMTP_PORT=25 - SMTP_REAL_REPLY_MAIL=ksp-servicestelle@sgdnord.rlp.de - #nginx: - # build: ./nginx - # container_name: "konova-nginx-server" - # ports: - # - "1337:80" - # depends_on: - # - konova - # volumes: - # - static_file_volume:/konova/static # Point to the volume for static files. Shared with konova service - # Instead of an own, new network, we need to connect to the existing one, which is provided by the postgis container # NOTE: THIS NETWORK MUST EXIST networks: default: external: name: postgis_nat_it_backend - -volumes: - static_file_volume: \ No newline at end of file diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100755 index 00000000..3e405b72 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# Start all needed services inside the container! + +service nginx start +service redis-server start +celery -A konova worker --detach +gunicorn konova.wsgi:application --bind 0.0.0.0:8000 \ No newline at end of file diff --git a/nginx/nginx.conf b/nginx.conf similarity index 100% rename from nginx/nginx.conf rename to nginx.conf diff --git a/nginx/Dockerfile b/nginx/Dockerfile deleted file mode 100644 index 4c49d2ee..00000000 --- a/nginx/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM nginx:alpine - -RUN rm /etc/nginx/conf.d/default.conf -COPY nginx.conf /etc/nginx/conf.d \ No newline at end of file