#Build stage FROM docker.io/library/golang:1.21-bullseye AS build-env ARG NTFY_VERSION ARG VERSION=dev ARG COMMIT=unknown ARG NODE_MAJOR=18 RUN apt-get update && apt-get install -y \ build-essential ca-certificates curl gnupg \ && mkdir -p /etc/apt/keyrings \ && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" >> /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y \ python3-pip \ python3-venv \ nodejs \ && rm -rf /var/lib/apt/lists/* \ && git clone --depth=1 -b "${NTFY_VERSION}" https://github.com/binwiederhier/ntfy.git /ntfybuild WORKDIR /ntfybuild RUN make web && make docs && make cli-deps-all && make VERSION=$NTFY_VERSION cli-linux-amd64 FROM docker.io/library/alpine:latest LABEL maintainer="contact@garbaye.fr" EXPOSE 80/tcp RUN apk add --no-cache tzdata \ && adduser -S -H -D ntfy \ && mkdir /etc/ntfy \ && chown ntfy:nogroup /etc/ntfy \ && mkdir /var/cache/ntfy \ && chown ntfy:nogroup /var/cache/ntfy USER ntfy ENTRYPOINT ["ntfy"] COPY --from=build-env /ntfybuild/dist/ntfy_linux_amd64_linux_amd64_v1/ntfy /usr/bin/ntfy