diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml new file mode 100644 index 0000000..5231c44 --- /dev/null +++ b/docker/docker-compose.dev.yml @@ -0,0 +1,20 @@ +services: + postgres: + image: postgres:16-alpine + restart: unless-stopped + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + - POSTGRES_DB=dofus_manager + ports: + - "5432:5432" + volumes: + - postgres_dev_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres -d dofus_manager"] + interval: 5s + timeout: 5s + retries: 5 + +volumes: + postgres_dev_data: diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000..28f151d --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,47 @@ +services: + app: + build: + context: .. + dockerfile: docker/Dockerfile + restart: unless-stopped + environment: + - DATABASE_URL=postgresql://postgres:${DB_PASSWORD}@db:5432/dofus_manager + - SESSION_SECRET=${SESSION_SECRET} + - NODE_ENV=production + ports: + - "3000:3000" + depends_on: + postgres: + condition: service_healthy + healthcheck: + test: + ["CMD", "wget", "-q", "--spider", "http://localhost:3000/api/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + networks: + - internal + + db: + image: postgres:16-alpine + restart: unless-stopped + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_DB=dofus_manager + volumes: + - postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres -d dofus_manager"] + interval: 5s + timeout: 5s + retries: 5 + networks: + - internal + +volumes: + postgres_data: + +networks: + internal: