Some checks failed
Build and deploy / Validate source (push) Successful in 6s
Build and deploy / Integration suite on a real stack (push) Failing after 54s
Build and deploy / Secret scan and release gate (push) Successful in 5s
Build and deploy / Publish images and notify Portainer (push) Has been skipped
The integration job failed starting the scanner: error mounting ".../local/clamd.conf" to rootfs at "/etc/clamav/clamd.conf": not a directory The files are in the repository, so this was not a missing checkout. A containerised CI runner shares the host's Docker daemon, so "./local/clamd.conf" resolves to a workspace path that exists inside the runner but not on the host where the daemon creates the mount. The daemon makes an empty directory there and the container cannot start. Only the bind-mounting services were affected, which is why PostgreSQL and MinIO came up first. Build the scanner and storage-init images with their configuration copied in, so compose.local.yaml no longer bind-mounts anything from the host and works regardless of how the runner reaches the daemon. Both bases stay overridable through CLAMAV_IMAGE and MINIO_IMAGE. The production stack is unaffected: it ships clamd.conf as a Swarm config, which the manager reads at deploy time. Verified from a clean slate: the stack starts, the scanner runs the baked configuration, storage provisioning runs from the baked script, and the full suite passes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
7 lines
296 B
Docker
7 lines
296 B
Docker
# Provisioning script and policies baked in, for the same reason as the scanner.
|
|
ARG MINIO_IMAGE=quay.io/minio/minio:RELEASE.2025-04-22T22-12-26Z
|
|
FROM ${MINIO_IMAGE}
|
|
COPY local/storage-init.sh /init.sh
|
|
COPY local/storage-policy.json /policy.json
|
|
COPY local/storage-lifecycle.json /lifecycle.json
|