DockerVonKI/docker-compose.yml

66 lines
1.4 KiB
YAML

# version: "3.9"
services:
db:
image: postgres:16
container_name: pg-db
restart: unless-stopped
env_file: .env
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- db-data:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 5s
timeout: 3s
retries: 10
api:
build:
context: ./api
dockerfile: Dockerfile
container_name: node-api
restart: unless-stopped
env_file: .env
environment:
PORT: ${PORT}
DATABASE_URL: ${DATABASE_URL}
NODE_ENV: ${NODE_ENV}
expose:
- "8080" # nur im Compose-Netz
depends_on:
db:
condition: service_healthy
web:
build:
context: ./apache
dockerfile: Dockerfile
container_name: apache-web
restart: unless-stopped
env_file: .env
ports:
- "${APACHE_HTTP_PORT}:80" # Host:8088 -> Apache:80
depends_on:
- api
pgadmin:
image: dpage/pgadmin4:8
container_name: pg-admin
restart: unless-stopped
environment:
PGADMIN_DEFAULT_EMAIL: admin@example.com
PGADMIN_DEFAULT_PASSWORD: admin123
ports:
- "5050:80"
depends_on:
- db
volumes:
db-data: