version: "3.9" networks: frontend_net: backend_net: volumes: postgres_data: services: db: image: postgres:16-alpine container_name: app_db restart: on-failure environment: POSTGRES_DB: appdb POSTGRES_USER: appuser POSTGRES_PASSWORD: apppassword volumes: - postgres_data:/var/lib/postgresql/data - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql:ro networks: - backend_net backend: build: ./backend container_name: app_backend restart: on-failure environment: DATABASE_URL: postgresql://appuser:apppassword@db:5432/appdb depends_on: - db networks: - backend_net frontend: build: ./frontend container_name: app_frontend restart: on-failure ports: - "8080:80" depends_on: - backend networks: - frontend_net - backend_net adminer: image: adminer:4 container_name: app_adminer restart: on-failure ports: - "8081:8080" networks: - backend_net