FROM golang:1.20.6-bookworm as builder ARG TARGETARCH ARG TARGETOS ENV VERSION 498fcaa7c3413a2d9d0aaf67cfe5fdeec76bff71 RUN apt update -y && \ mkdir /perkeep && \ cd /perkeep && \ git init && \ git remote add origin https://github.com/perkeep/perkeep.git && \ git fetch origin $VERSION && \ git reset --hard FETCH_HEAD WORKDIR /perkeep RUN go run make.go --arch $TARGETARCH --os $TARGETOS FROM alpine:3.18.2 ENV USER perkeep ENV GROUP perkeep ENV UID 1000 ENV GID 1001 RUN addgroup -S $GROUP --gid $GID && \ adduser \ --disabled-password \ --gecos "" \ --home "/$USER" \ --shell "/bin/sh" \ --ingroup "$GROUP" \ --uid "$UID" \ "$USER" && \ apk add --no-cache libc6-compat envsubst USER $USER RUN mkdir /perkeep/data && \ mkdir /perkeep/config COPY --chown=$USER:$GROUP --chmod=750 --from=builder /go/bin/* /usr/local/bin/ COPY --chown=$USER:$GROUP --chmod=750 server-config.tpl.json /perkeep/server-config-custom.tpl.json COPY --chown=$USER:$GROUP --chmod=750 docker-entrypoint.sh /docker-entrypoint.sh VOLUME /perkeep/data VOLUME /perkeep/config EXPOSE 3179 # /docker-entrypoint.sh perkeepd -configfile /perkeep/config/server-config-custom.json ENTRYPOINT ["/docker-entrypoint.sh", "perkeepd", "-configfile", "/perkeep/config/server-config-custom.json"]