name: canon # Works with a plain `docker compose up -d --build` and with Arcane's Git sync # (Pull). Arcane pulls this file's whole directory, so the build context is # the repository itself. services: canon: build: context: . args: VERSION: ${CANON_VERSION:-dev} image: canon:latest # Never look for canon:latest on a registry: every deploy (including # Arcane's "Pull image" / "Redeploy after sync") builds from the source # that was just synced. pull_policy: build container_name: canon restart: unless-stopped ports: - "${CANON_BIND:-0.0.0.0}:${CANON_PUBLISH_PORT:-4242}:4242" volumes: # A named volume by default, so a Git sync never touches the database. # Set CANON_DATA_PATH to a host folder (e.g. ./data) to keep it there. - ${CANON_DATA_PATH:-canon-data}:/data env_file: - path: .env required: false networks: - chromanet volumes: canon-data: networks: chromanet: external: true