WIP: Docker enhancement

* reduces all needed containers into a single one
* simplifies initial startup command by adding docker-entrypoint.sh
This commit is contained in:
mpeltriaux 2022-04-26 08:55:07 +02:00
parent 7d29dddd22
commit 80de57a087
5 changed files with 14 additions and 33 deletions

View File

@ -7,14 +7,16 @@ WORKDIR /konova
RUN apt update RUN apt update
RUN apt install -y gdal-bin redis-server nginx 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/ COPY ./requirements.txt /konova/
RUN pip install --upgrade pip RUN pip install --upgrade pip
RUN pip install -r requirements.txt 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 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/ COPY . /konova/
# Move static files in designated folder # Move static files in designated folder

View File

@ -1,30 +1,19 @@
version: '3.3' version: '3.3'
services: services:
#redis:
# image: redis
# container_name: "konova-redis-cache"
# volumes:
# - /redis/data:/bitnami/redis/data
# environment:
# - REDIS_PASSWORD=CHANGE_ME
konova: konova:
external_links: external_links:
- postgis:db - postgis:db
- arnova-nginx-server:arnova - arnova-nginx-server:arnova
build: . build: .
container_name: "konova-docker" 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 restart: always
volumes: volumes:
- .:/konova - .:/konova
- /path/to/host/folder:/konova_uploaded_files - /data/apps/konova/uploaded_files:/konova_uploaded_files
- static_file_volume:/konova/static # Point to the volume for static files. Shared with nginx service
ports: ports:
- "1337:80" - "1337:80"
#depends_on:
# - redis
environment: environment:
- POSTGRES_NAME=konova - POSTGRES_NAME=konova
- POSTGRES_PORT=5432 - POSTGRES_PORT=5432
@ -37,22 +26,9 @@ services:
- SMTP_PORT=25 - SMTP_PORT=25
- SMTP_REAL_REPLY_MAIL=ksp-servicestelle@sgdnord.rlp.de - 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 # 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 # NOTE: THIS NETWORK MUST EXIST
networks: networks:
default: default:
external: external:
name: postgis_nat_it_backend name: postgis_nat_it_backend
volumes:
static_file_volume:

7
docker-entrypoint.sh Executable file
View File

@ -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

View File

@ -1,4 +0,0 @@
FROM nginx:alpine
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx.conf /etc/nginx/conf.d