FROM --platform=$BUILDPLATFORM docker.io/golang:1.24-alpine3.21 AS build RUN addgroup -g 1000 -S crow && \ adduser -u 1000 -G crow -S crow && \ mkdir -p /var/lib/crow && \ ln -s /var/lib/crow /var/lib/woodpecker && \ chown -R crow:crow /var/lib/crow /var/lib/woodpecker FROM scratch ARG TARGETOS TARGETARCH ENV GODEBUG=netdns=go # Internal setting do NOT change! Signals that crow is running inside a container ENV WOODPECKER_IN_CONTAINER=true ENV XDG_CACHE_HOME=/var/lib/woodpecker ENV XDG_DATA_HOME=/var/lib/woodpecker EXPOSE 8000 9000 80 443 # copy certs from certs image COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt # copy server binary COPY dist/server/${TARGETOS}_${TARGETARCH}/crow-server /bin/ COPY --from=build /etc/passwd /etc/passwd COPY --from=build /etc/group /etc/group COPY --from=build /var/lib/crow /var/lib/crow USER crow HEALTHCHECK CMD ["/bin/crow-server", "ping"] ENTRYPOINT ["/bin/crow-server"]