web/docker-compose.yml
version: '3'
services:
postgres:
image: postgres:10-alpine
ports:
- "${POSTGRES_PORT}:${POSTGRES_PORT}"
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
volumes:
- ../data/postgres:/var/lib/postgresql/data
restart: always
pgadmin:
image: dpage/pgadmin4
depends_on:
- postgres
ports:
- "${PG_ADMIN_PORT}:${PG_ADMIN_PORT}"
environment:
- PGADMIN_DEFAULT_EMAIL=${PG_ADMIN_EMAIL}
- PGADMIN_DEFAULT_PASSWORD=${PG_ADMIN_PASSWORD}
- PGADMIN_LISTEN_PORT=${PG_ADMIN_PORT}
volumes:
- ../data/pg-admin:/var/lib/pgadmin
restart: always
flask:
build: .
depends_on:
- postgres
ports:
- ${FLASK_PORT}:${FLASK_PORT}
environment:
- DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:${POSTGRES_PORT}/neat
volumes:
- ./api/:/api
- ../data/migrations:/migrations
restart: always
react:
build: frontend
depends_on:
- flask
environment:
- NODE_ENV=production
- PORT=${REACT_PORT}
ports:
- ${REACT_PORT}:${REACT_PORT}
volumes:
- ./frontend:/app