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>
8 lines
464 B
Docker
8 lines
464 B
Docker
# The scanner configuration is baked in rather than bind-mounted.
|
|
# A containerised CI runner shares the host's Docker daemon, so a host path from
|
|
# the runner's workspace does not exist where the daemon creates the mount: it
|
|
# makes an empty directory instead and the container fails to start.
|
|
ARG CLAMAV_IMAGE=clamav/clamav@sha256:9cb27d7660bdf66e9878c832cb433dd8aa152cfbe16f3c2c0084c80b04ae22b4
|
|
FROM ${CLAMAV_IMAGE}
|
|
COPY local/clamd.conf /etc/clamav/clamd.conf
|