services: sori-studio: build: context: . dockerfile: Dockerfile container_name: sori-studio env_file: - ${ENV_FILE:-.env.production} ports: - "${APP_PORT:-43080}:3000" volumes: - ./public/uploads:/app/public/uploads depends_on: - sori-studio-db networks: - sori-studio-network restart: unless-stopped sori-studio-db: image: postgres:16-alpine container_name: sori-studio-db env_file: - ${ENV_FILE:-.env.production} ports: - "${DB_BIND_ADDRESS:-127.0.0.1}:${DB_PORT:-43081}:5432" volumes: - sori-studio-postgres:/var/lib/postgresql/data # NAS 등: 호스트 db/migrations 가 다른 UID만 읽을 수 있으면 컨테이너에서 Permission denied → DB 재시작 루프. 프로젝트 루트에서 chmod -R a+rX db/migrations 및 상위 경로 통과 권한 확인. - ./db/migrations:/docker-entrypoint-initdb.d:ro networks: - sori-studio-network restart: unless-stopped volumes: sori-studio-postgres: name: ${POSTGRES_VOLUME_NAME:-soristudio_sori-studio-postgres} networks: sori-studio-network: driver: bridge ipam: config: - subnet: ${DOCKER_SUBNET:-10.250.50.0/24}