You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.6 KiB
107 lines
2.6 KiB
version: '3.5'
|
|
|
|
x-postgres-variables: &postgres-variables
|
|
POSTGRES_DB: "${POSTGRES_DB}"
|
|
POSTGRES_HOST: "${POSTGRES_HOST}"
|
|
POSTGRES_PORT: "${POSTGRES_PORT}"
|
|
POSTGRES_USER: "${POSTGRES_USER}"
|
|
POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
|
|
POSTGRES_HOST_AUTH_METHOD: "${POSTGRES_HOST_AUTH_METHOD}"
|
|
|
|
x-django-variables: &django-variables
|
|
PYTHONUNBUFFERED: 1
|
|
DJANGO_PORT: "${DJANGO_PORT}"
|
|
DEBUG: "${DEBUG}"
|
|
|
|
x-frontend-variables: &frontend-variables
|
|
DOMAIN: "${DOMAIN}"
|
|
REACT_APP_DOMAIN_URL: "https://${DOMAIN}/"
|
|
|
|
|
|
x-martin-variables: &martin-variables
|
|
MARTIN_PORT: "${MARTIN_PORT}"
|
|
|
|
|
|
services:
|
|
django:
|
|
container_name: ${CONTAINERS_NAME}_django
|
|
build: .
|
|
command: >
|
|
sh -c "python manage.py migrate &&
|
|
python manage.py collectstatic --noinput &&
|
|
python manage.py loaddata fixtures/groups.json
|
|
python manage.py runserver 0.0.0.0:${DJANGO_PORT}"
|
|
environment:
|
|
<<: *postgres-variables
|
|
<<: *django-variables
|
|
<<: *frontend-variables
|
|
volumes:
|
|
- ./django_static/:/code/django_static/
|
|
- ./media/:/code/media/
|
|
ports:
|
|
- "${DJANGO_PORT}:${DJANGO_PORT}"
|
|
expose:
|
|
- "${DJANGO_PORT}"
|
|
restart: always
|
|
depends_on:
|
|
- db
|
|
loyalty-rabbit:
|
|
image: rabbitmq:3.9-management
|
|
container_name: loyalty-rabbit
|
|
volumes:
|
|
- rabbitmq_data:/var/lib/rabbitmq
|
|
- rabbitmq_log:/var/log/rabbitmq
|
|
logging:
|
|
driver: none
|
|
restart: always
|
|
ports:
|
|
- 5672:5672
|
|
|
|
beat:
|
|
restart: always
|
|
build:
|
|
context: .
|
|
entrypoint: [ "celery", "-A", "postamates.celery:app", "beat" ]
|
|
worker:
|
|
restart: always
|
|
environment:
|
|
<<: *postgres-variables
|
|
<<: *django-variables
|
|
build:
|
|
context: .
|
|
entrypoint: [ "celery", "-A", "postamates.celery:app", "worker" ]
|
|
depends_on:
|
|
- db
|
|
- loyalty-rabbit
|
|
- django
|
|
db:
|
|
container_name: ${CONTAINERS_NAME}_db
|
|
image: mdillon/postgis
|
|
environment:
|
|
<<: *postgres-variables
|
|
ports:
|
|
- "${POSTGRES_PORT}:${POSTGRES_PORT}"
|
|
expose:
|
|
- "${POSTGRES_PORT}"
|
|
volumes:
|
|
- ${POSTGRES_VOLUME_PATH}:/var/lib/postgresql/data
|
|
command: -p ${POSTGRES_PORT}
|
|
|
|
martin:
|
|
container_name: ${CONTAINERS_NAME}_martin
|
|
image: urbica/martin
|
|
ports:
|
|
- "${MARTIN_PORT}:3000"
|
|
environment:
|
|
<<: *martin-variables
|
|
WATCH_MODE: "true"
|
|
DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:${POSTGRES_PORT}/${POSTGRES_DB}"
|
|
depends_on:
|
|
- db
|
|
- django
|
|
restart: always
|
|
|
|
volumes:
|
|
rabbitmq_data:
|
|
rabbitmq_log:
|