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.

88 lines
2.1 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 runserver 0.0.0.0:${DJANGO_PORT}"
environment:
<<: *postgres-variables
<<: *django-variables
volumes:
- .:/code
- ./django_static/:/code/django_static/
- ./media/:/code/media/
ports:
- "${DJANGO_PORT}:${DJANGO_PORT}"
expose:
- "${DJANGO_PORT}"
restart: always
depends_on:
- db
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
frontend:
container_name: ${CONTAINERS_NAME}_frontend
build: postamates_frontend
volumes:
- ./build/:/usr/src/postamates_frontend/build/
command:
sh -c "yarn build"
environment:
<<: *frontend-variables
depends_on:
- db
- martin
- django