* adds docker related configurations
* directly working configuration provided
This commit is contained in:
mpeltriaux 2022-01-10 13:52:40 +01:00
parent 4e22321e4c
commit 670a81c3f5
4 changed files with 78 additions and 5 deletions

17
Dockerfile Normal file
View File

@ -0,0 +1,17 @@
FROM python:3.7-slim
ENV PYTHONUNBUFFERED 1
WORKDIR /konova
# Install some dependencies
RUN apt update
RUN apt install -y gdal-bin
# Copy requirements file into workspace
COPY ./requirements.txt /konova/
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
# Copy rest of project into workspace
COPY . /konova/

55
docker-compose.yml Normal file
View File

@ -0,0 +1,55 @@
version: '3.3'
services:
redis:
image: redis
volumes:
- /redis/data:/bitnami/redis/data
environment:
- REDIS_PASSWORD=CHANGE_ME
konova:
external_links:
- postgis:db
build: .
container_name: "konova-docker"
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/konova
ports:
- "8001:8000"
depends_on:
- redis
environment:
- POSTGRES_NAME=konova
- POSTGRES_PORT=5432
- POSTGRES_PASSWORD=michel
- POSTGRES_USER=konova
- POSTGRES_HOST=db
- REDIS_HOST=redis
# To provide a celery worker instance, we need to add the celery worker as an own service
celery_worker:
external_links:
- postgis:db
build: .
container_name: "konova-worker-docker"
command: celery -A konova worker -l INFO
volumes:
- .:/konova
depends_on:
- konova
environment:
- POSTGRES_NAME=konova
- POSTGRES_PORT=5432
- POSTGRES_PASSWORD=michel
- POSTGRES_USER=konova
- POSTGRES_HOST=db
- REDIS_HOST=redis
# 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

View File

@ -17,7 +17,7 @@ app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
# Declare redis as broker
app.conf.broker_url = 'redis://localhost:6379/0'
app.conf.broker_url = f"redis://{os.environ.get('REDIS_HOST')}:6379/0"
@app.task(bind=True)

View File

@ -119,10 +119,11 @@ WSGI_APPLICATION = 'konova.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'konova',
'USER': 'postgres',
'HOST': '127.0.0.1',
'PORT': '5432',
'NAME': os.environ.get('POSTGRES_NAME'),
'USER': os.environ.get('POSTGRES_USER'),
'HOST': os.environ.get('POSTGRES_HOST'),
'PASSWORD': os.environ.get('POSTGRES_PASSWORD'),
'PORT': os.environ.get('POSTGRES_PORT'),
}
}