You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.5 KiB
65 lines
1.5 KiB
# Полный стек: docker compose up --build -d → web :3000, api :3001, postgres :5434 (хост) |
|
# Только БД: docker compose up -d postgres |
|
|
|
services: |
|
postgres: |
|
image: postgres:16-alpine |
|
container_name: brandbook_postgres |
|
restart: unless-stopped |
|
environment: |
|
POSTGRES_USER: brandbook |
|
POSTGRES_PASSWORD: brandbook |
|
POSTGRES_DB: brandbook |
|
ports: |
|
- "5434:5432" |
|
volumes: |
|
- postgres_data:/var/lib/postgresql/data |
|
healthcheck: |
|
test: ["CMD-SHELL", "pg_isready -U brandbook -d brandbook"] |
|
interval: 5s |
|
timeout: 5s |
|
retries: 10 |
|
|
|
api: |
|
build: |
|
context: . |
|
dockerfile: docker/Dockerfile.api |
|
container_name: brandbook_api |
|
restart: unless-stopped |
|
ports: |
|
- "3001:3001" |
|
environment: |
|
DATABASE_URL: postgresql://brandbook:brandbook@postgres:5432/brandbook |
|
PORT: "3001" |
|
depends_on: |
|
postgres: |
|
condition: service_healthy |
|
healthcheck: |
|
test: |
|
[ |
|
"CMD-SHELL", |
|
"wget -qO- http://127.0.0.1:3001/ >/dev/null || exit 1", |
|
] |
|
interval: 10s |
|
timeout: 5s |
|
retries: 5 |
|
start_period: 40s |
|
|
|
web: |
|
build: |
|
context: . |
|
dockerfile: docker/Dockerfile.web |
|
args: |
|
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:3001} |
|
container_name: brandbook_web |
|
restart: unless-stopped |
|
ports: |
|
- "3000:3000" |
|
environment: |
|
PORT: "3000" |
|
depends_on: |
|
api: |
|
condition: service_healthy |
|
|
|
volumes: |
|
postgres_data:
|
|
|