version: '3' name: weather services: db: image: postgis/postgis:latest container_name: weather-db env_file: - .env environment: POSTGRES_USER: ${DATABASE_USER} POSTGRES_PASSWORD: ${DATABASE_PASSWORD} POSTGRES_DB: ${DATABASE_NAME} volumes: - db:/var/lib/postgresql/data - db_logs:/var/log ports: - "${DATABASE_PORT:-5432}:5432" networks: - backend restart: unless-stopped redis: image: redis:latest container_name: weather-redis ports: - ${REDIS_PORT:-6379}:6379 networks: - backend restart: unless-stopped minio: image: minio/minio container_name: weather-minio environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD} volumes: - minio:/data ports: - ${MINIO_PORT:-9000}:9000 - ${MINIO_PORT_INTERNAL:-9001}:9001 networks: - backend command: server --console-address ":9001" /data restart: unless-stopped service: container_name: weather-service env_file: - .env environment: DATABASE_HOST: db DATABASE_PORT: 5432 REDIS_HOST: redis REDIS_PORT: 6379 SERVICE_HOST: service SERVICE_PORT: 5000 ports: - "${SERVICE_PORT:-5000}:5000" build: context: . depends_on: - db - redis networks: - frontend - backend restart: unless-stopped volumes: db: db_logs: minio: networks: frontend: backend: