services: spree: image: ghcr.io/spree/spree:5.6.1 restart: unless-stopped environment: DATABASE_URL: postgres://spree:${POSTGRES_PASSWORD}@postgres:5432/spree_production SECRET_KEY_BASE: ${SECRET_KEY_BASE} ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY: ${ENCRYPTION_PRIMARY_KEY} ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY: ${ENCRYPTION_DETERMINISTIC_KEY} ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT: ${ENCRYPTION_KEY_DERIVATION_SALT} SPREE_HOST: ${HOST} RAILS_HOST: ${HOST} # The seed makes the first admin from these instead of a stock account. ADMIN_EMAIL: ${ADMIN_EMAIL} ADMIN_PASSWORD: ${ADMIN_PASSWORD} volumes: - storage:/rails/storage depends_on: postgres: condition: service_healthy postgres: image: postgres:18-alpine restart: unless-stopped environment: POSTGRES_USER: spree POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: spree_production volumes: - db:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U spree -d spree_production"] interval: 5s timeout: 5s retries: 10 volumes: storage: db: