FROM alpine:3 AS downloader ARG TARGETOS ARG TARGETARCH ARG TARGETVARIANT ARG VERSION ENV BUILDX_ARCH="${TARGETOS:-linux}_${TARGETARCH:-amd64}${TARGETVARIANT}" WORKDIR /app RUN wget https://github.com/seriousm4x/UpSnap/releases/download/${VERSION}/UpSnap_${VERSION}_${BUILDX_ARCH}.zip &&\ unzip UpSnap_${VERSION}_${BUILDX_ARCH}.zip &&\ rm -f UpSnap_${VERSION}_${BUILDX_ARCH}.zip &&\ chmod +x upsnap &&\ apk update &&\ apk add --no-cache libcap &&\ setcap 'cap_net_raw=+p' ./upsnap FROM alpine:3 ARG UPSNAP_HTTP_LISTEN=0.0.0.0:8090 ENV UPSNAP_HTTP_LISTEN=${UPSNAP_HTTP_LISTEN} RUN apk update &&\ apk add --no-cache tzdata ca-certificates nmap samba samba-common-tools openssh sshpass curl &&\ rm -rf /var/cache/apk/* RUN addgroup -g 1000 upsnap &&\ adduser -G upsnap -D -H -u 1000 upsnap -s /sbin/nologin WORKDIR /app COPY --from=downloader /app/upsnap upsnap LABEL org.opencontainers.image.source="https://github.com/seriousm4x/UpSnap" \ org.opencontainers.image.url="https://github.com/seriousm4x/UpSnap" \ org.opencontainers.image.licenses="MIT" HEALTHCHECK --interval=10s \ CMD curl -fs "http://${UPSNAP_HTTP_LISTEN}/api/health" || exit 1 CMD ["serve","--http","${UPSNAP_HTTP_LISTEN}"] ENTRYPOINT ["/app/upsnap"]