services: web_client: container_name: web_client build: context: ./client dockerfile: Dockerfile ports: - ${CLIENT_PORT}:5173 restart: always # redis_db: # image: "redis:alpine" # container_name: redis_db # ports: # - ${REDIS_PORT}:${REDIS_PORT} # environment: # - REDIS_PASSWORD=${REDIS_PASSWORD} # command: [ "redis-server", "--requirepass", "${REDIS_PASSWORD}" ] # volumes: # - ./redis_data:/data # expose: # - ${REDIS_PORT}:${REDIS_PORT} # restart: unless-stopped ems: container_name: ems build: context: ./ems dockerfile: Dockerfile volumes: - ./ems/public:/app/public # links: # - redis_db:redis_db # - psql_db:psql_db # depends_on: # - redis_db # - psql_db environment: - REDIS_PASSWORD=${REDIS_PASSWORD} - REDIS_HOST=${REDIS_HOST} - REDIS_PORT=${REDIS_PORT} - EMS_PORT=${EMS_PORT} - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@psql_db:${POSTGRES_PORT}/${POSTGRES_DB}?schema=public ports: - ${EMS_PORT}:${EMS_PORT} restart: always postgis_db: container_name: postgis_db image: postgis/postgis:17-3.4-alpine volumes: - ./postgis_db:/var/lib/postgresql/data environment: - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} ports: - ${POSTGRES_PORT}:${POSTGRES_PORT} expose: - ${POSTGRES_PORT} healthcheck: test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}'] interval: 10s timeout: 5s retries: 5 start_period: 10s restart: always ems_db: container_name: ems_db image: postgres:16.4-alpine volumes: - ./ems_db:/var/lib/postgresql/data environment: - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} ports: - ${POSTGRES_PORT}:${POSTGRES_PORT} expose: - ${POSTGRES_PORT} healthcheck: test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}'] interval: 10s timeout: 5s retries: 5 start_period: 10s restart: always