mirror of
https://github.com/Haxxnet/Compose-Examples
synced 2024-11-24 04:21:14 +00:00
105 lines
3.0 KiB
YAML
105 lines
3.0 KiB
YAML
version: "3.8"
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
container_name: rx-db
|
|
restart: unless-stopped
|
|
expose:
|
|
- 5432
|
|
volumes:
|
|
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/rxresume/database:/var/lib/postgresql/data
|
|
environment:
|
|
- POSTGRES_DB=postgres
|
|
- POSTGRES_USER=postgres
|
|
- POSTGRES_PASSWORD=postgres
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres -d postgres"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
#networks:
|
|
# - proxy
|
|
|
|
minio:
|
|
image: minio/minio
|
|
container_name: rx-minio
|
|
restart: unless-stopped
|
|
command: server /data
|
|
ports:
|
|
- 9000:9000
|
|
expose:
|
|
- 9000
|
|
volumes:
|
|
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/rxresume/minio:/data
|
|
environment:
|
|
- MINIO_ROOT_USER=minioadmin
|
|
- MINIO_ROOT_PASSWORD=minioadmin
|
|
#networks:
|
|
# - proxy
|
|
#labels:
|
|
# - traefik.enable=true
|
|
# - traefik.docker.network=proxy
|
|
# - traefik.http.routers.minio.rule=Host(`storage.example.com`)
|
|
# - traefik.http.services.minio.loadbalancer.server.port=9000
|
|
# # Optional part for traefik middlewares
|
|
# - traefik.http.routers.minio.middlewares=local-ipwhitelist@file
|
|
|
|
chrome:
|
|
image: ghcr.io/browserless/chromium:latest
|
|
container_name: rx-chrome
|
|
restart: unless-stopped
|
|
environment:
|
|
- TIMEOUT=10000
|
|
- CONCURRENT=10
|
|
- TOKEN=chrome_token
|
|
- EXIT_ON_HEALTH_FAILURE=true
|
|
- PRE_REQUEST_HEALTH_CHECK=true
|
|
#networks:
|
|
# - proxy
|
|
|
|
app:
|
|
image: amruthpillai/reactive-resume:latest
|
|
container_name: rx-resume
|
|
restart: unless-stopped
|
|
ports:
|
|
- 3000:3000
|
|
expose:
|
|
- 3000
|
|
depends_on:
|
|
- postgres
|
|
- minio
|
|
- chrome
|
|
environment:
|
|
- PORT=3000
|
|
- NODE_ENV=production
|
|
- PUBLIC_URL=http://localhost:3000 # replace with your https url if reverse proxy in use; e.g. https://resume.example.com
|
|
- STORAGE_URL=http://localhost:9000/default # replace with your https url if reverse proxy in use; e.g. https://storage.example.com
|
|
- CHROME_TOKEN=chrome_token
|
|
- CHROME_URL=ws://chrome:3000
|
|
- DATABASE_URL=postgresql://postgres:postgres@postgres:5432/postgres
|
|
- ACCESS_TOKEN_SECRET=access_token_secret
|
|
- REFRESH_TOKEN_SECRET=refresh_token_secret
|
|
- MAIL_FROM=noreply@localhost
|
|
# - SMTP_URL=smtp://user:pass@smtp:587 # Optional
|
|
- STORAGE_ENDPOINT=minio
|
|
- STORAGE_PORT=9000
|
|
- STORAGE_REGION=us-east-1 # Optional
|
|
- STORAGE_BUCKET=default
|
|
- STORAGE_ACCESS_KEY=minioadmin
|
|
- STORAGE_SECRET_KEY=minioadmin
|
|
- STORAGE_USE_SSL=false
|
|
#networks:
|
|
# - proxy
|
|
#labels:
|
|
# - traefik.enable=true
|
|
# - traefik.docker.network=proxy
|
|
# - traefik.http.routers.rxresume.rule=Host(`resume.example.com`)
|
|
# - traefik.http.services.rxresume.loadbalancer.server.port=3000
|
|
# # Optional part for traefik middlewares
|
|
# - traefik.http.routers.rxresume.middlewares=local-ipwhitelist@file
|
|
|
|
#networks:
|
|
# proxy:
|
|
# external: true
|