Add docker specific files
This commit is contained in:
parent
679414a703
commit
0658d6404f
5 changed files with 70 additions and 1 deletions
14
Dockerfile
Normal file
14
Dockerfile
Normal 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
31
docker-compose.yml
Normal 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
5
src/entrypoint.sh
Executable 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
|
||||||
|
|
@ -7,6 +7,8 @@ from celery import Celery
|
||||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "newsreader.conf.dev")
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "newsreader.conf.dev")
|
||||||
|
|
||||||
# note: use the --workdir flag when running from different directories
|
# 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()
|
app.autodiscover_tasks()
|
||||||
|
|
|
||||||
17
src/newsreader/conf/docker.py
Normal file
17
src/newsreader/conf/docker.py
Normal 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//"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue