services: postgres: image: postgres:17.4-alpine container_name: user_db restart: always ports: - 20001:5432 entrypoint: - /scripts/db-lanuch-entrypoint.sh environment: POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: ${DB_NAME} TZ: ${TZ} volumes: - ./shared_data/user_db:/var/lib/postgresql/data - ./sql:/docker-entrypoint-initdb.d - ./scripts:/scripts networks: - user-network user: image: golang:1.25.0-alpine3.22 container_name: user_api restart: always ports: - 20000:80 depends_on: - postgres networks: - user-network environment: DB_HOST: postgres DB_PORT: ${DB_PORT} DB_USER: ${DB_USER} DB_PASSWORD: ${DB_PASSWORD} DB_NAME: ${DB_NAME} TZ: ${TZ} volumes: - ./src:/app command: sh -c "cd /app && go mod tidy && go run main.go" networks: user-network: driver: bridge volumes: {}