medusa-js-2-docker/docker-compose.yaml
2025-04-20 19:02:32 +10:00

96 lines
3.2 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

version: "3.9"
services:
# ─────────────────────── Databases & Caches ───────────────────────
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: postgres
volumes:
- postgres-data:/var/lib/postgresql/data
networks: [backend]
redis:
image: redis:7-alpine
restart: unless-stopped
command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}"]
volumes:
- redis-data:/data
networks: [backend]
minio:
image: minio/minio:RELEASE.2024-04-18T19-09-19Z
restart: unless-stopped
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
command: server /data --console-address ":9001"
volumes:
- minio-data:/data
networks: [backend]
# ─────────────────────── Medusa processes ───────────────────────
medusa-server:
build:
context: ./server
dockerfile: Server.Dockerfile # path relative to repo root
depends_on: [postgres, redis, minio]
restart: unless-stopped
environment:
# Core DB / cache
DATABASE_URL: postgres://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres?ssl_mode=disable
REDIS_URL: redis://default:${REDIS_PASSWORD}@redis:6379/0
# S3 (MinIO) storage
S3_ENDPOINT: http://minio:9000
S3_REGION: ${S3_REGION:-us-east-1}
S3_BUCKET: ${S3_BUCKET}
S3_ACCESS_KEY_ID: ${MINIO_ROOT_USER}
S3_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD}
# Medusaspecific
MEDUSA_BACKEND_URL: ${MEDUSA_BACKEND_URL:-http://localhost:9000}
MEDUSA_WORKER_MODE: server
DISABLE_MEDUSA_ADMIN: "false"
COOKIE_SECRET: ${COOKIE_SECRET}
JWT_SECRET: ${JWT_SECRET}
# CORS etc.
ADMIN_CORS: ${ADMIN_CORS}
STORE_CORS: ${STORE_CORS}
AUTH_CORS: ${AUTH_CORS}
# Any other keys (Stripe, Resend, …)
STRIPE_API_KEY: ${STRIPE_API_KEY}
STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET}
RESEND_API_KEY: ${RESEND_API_KEY}
RESEND_FROM_EMAIL: ${RESEND_FROM_EMAIL}
networks: [backend]
medusa-worker:
build:
context: ./server
dockerfile: Worker.Dockerfile
depends_on: [postgres, redis, medusa-server]
restart: unless-stopped
environment:
DATABASE_URL: postgres://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres?ssl_mode=disable
REDIS_URL: redis://default:${REDIS_PASSWORD}@redis:6379/0
S3_ENDPOINT: http://minio:9000
S3_REGION: ${S3_REGION:-us-east-1}
S3_BUCKET: ${S3_BUCKET}
S3_ACCESS_KEY_ID: ${MINIO_ROOT_USER}
S3_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD}
MEDUSA_WORKER_MODE: worker
DISABLE_MEDUSA_ADMIN: "true"
networks: [backend]
# ────────────────────────── Shared Stuff ──────────────────────────
volumes:
postgres-data:
redis-data:
minio-data:
networks:
backend:
driver: bridge