Add docker specific files

This commit is contained in:
Sonny 2019-08-10 21:12:59 +02:00
parent 679414a703
commit 0658d6404f
5 changed files with 70 additions and 1 deletions

14
Dockerfile Normal file
View file

@ -0,0 +1,14 @@
FROM python:3.7-buster
RUN mkdir /app
WORKDIR /app
# Use a seperate layer for the project requirements
COPY ./requirements /app/requirements
RUN pip install -r requirements/dev.txt
COPY . /app/
# Set the default shell & add a home dir
RUN useradd -ms /bin/bash newsreader
USER newsreader

31
docker-compose.yml Normal file
View file

@ -0,0 +1,31 @@
version: '3'
services:
db:
# See https://hub.docker.com/_/postgres
image: postgres
environment:
- POSTGRES_USER=newsreader
- POSTGRES_DB=newsreader
web:
build: .
command: src/entrypoint.sh
environment:
- DJANGO_SETTINGS_MODULE=newsreader.conf.docker
volumes:
- .:/app
ports:
- '8000:8000'
depends_on:
- db
rabbitmq:
image: rabbitmq:3.7
celery:
build: .
command: celery -A newsreader worker --beat --scheduler django --loglevel=info --workdir=/app/src/
environment:
- DJANGO_SETTINGS_MODULE=newsreader.conf.docker
volumes:
- .:/app
depends_on:
- rabbitmq

5
src/entrypoint.sh Executable file
View file

@ -0,0 +1,5 @@
#!/bin/bash
# This file should only be used in conjuction with docker-compose
python /app/src/manage.py migrate
python /app/src/manage.py runserver 0.0.0.0:8000

View file

@ -7,6 +7,8 @@ from celery import Celery
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "newsreader.conf.dev")
# note: use the --workdir flag when running from different directories
app = Celery("newsreader", broker="amqp://")
app = Celery("newsreader")
app.config_from_object("django.conf:settings")
app.autodiscover_tasks()

View file

@ -0,0 +1,17 @@
from .dev import *
# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "newsreader",
"USER": "newsreader",
"HOST": "db",
}
}
# Celery
# https://docs.celeryproject.org/en/latest/userguide/configuration.html
BROKER_URL = "amqp://guest:guest@rabbitmq:5672//"