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")
|
||||
|
||||
# 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()
|
||||
|
|
|
|||
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