# Local development overrides. # Compose merges this file on top of docker-compose.yml automatically, so a plain `docker compose up` builds from # source instead of pulling a registry image: # # docker compose up --build # build locally and run # docker compose up -d # reuse the last local build # # It reuses the `image:` name from the base file, so the local build is tagged the same way the production image would # be. services: website: image: ${IMAGE_NAME}:${IMAGE_TAG:-latest} platform: linux/arm64 build: context: ../.. dockerfile: Services/Website/Dockerfile environment: LOG_LEVEL: debug DATABASE_DRIVER: ${DATABASE_DRIVER:-inMemory} DATABASE_HOST: ${DATABASE_HOST:-localhost} DATABASE_TLS: ${DATABASE_TLS:-off} # Local development database, started only with the `database` profile so a plain `docker compose up` still runs the # in-memory backend: # # docker compose --profile database up postgres postgres: image: postgres:18 container_name: ${HOST_OWNER:-loud}-db restart: unless-stopped profiles: - database ports: - "127.0.0.1:${DATABASE_PORT:-5432}:5432" environment: POSTGRES_DB: ${DATABASE_NAME:-loud} POSTGRES_USER: ${DATABASE_USERNAME:-loud} POSTGRES_PASSWORD: ${DATABASE_PASSWORD:-loud} security_opt: - no-new-privileges:true healthcheck: test: ["CMD-SHELL", "pg_isready --username=$${POSTGRES_USER} --dbname=$${POSTGRES_DB}"] interval: 5s timeout: 5s retries: 10 start_period: 30s volumes: # postgres:18 keeps its data directory under /var/lib/postgresql//docker, so the whole # /var/lib/postgresql tree is mounted — not the pre-18 /var/lib/postgresql/data path. - ./Tests/DB:/var/lib/postgresql