servnest-containers/sftpgo.Containerfile

27 lines
1.3 KiB
Text

FROM a.invalid/servnest/alpine AS builder
RUN apk add go
ARG SFTPGO_VERSION
ADD sftpgo-v$SFTPGO_VERSION.tar.gz /
WORKDIR /sftpgo-$SFTPGO_VERSION/
RUN cp -r openapi ./internal/bundle/openapi && \
cp -r templates ./internal/bundle/templates && \
cp -r static ./internal/bundle/static
RUN GOFLAGS="-mod=readonly" go mod vendor
RUN CGO_ENABLED=0 go build \
-mod=vendor \
-buildmode=pie \
-tags nogcs,nos3,noazblob,nobolt,nomysql,nopgsql,nosqlite,noportable,nometrics,bundle \
-trimpath \
-ldflags "-s" \
-o /usr/local/bin/sftpgo
FROM a.invalid/servnest/alpine
RUN apk add openssh-keygen bash
RUN mkdir /etc/sftpgo/ && ssh-keygen -f /etc/sftpgo/ed25519 -t ed25519 -N "" -C ""
RUN touch /etc/sftpgo/banner.txt
RUN ["/bin/bash", "-c", "fp=($(ssh-keygen -l -f /etc/sftpgo/ed25519)) && echo ${fp[1]} > /etc/sftpgo/ed25519.fp"]
RUN ssh-keygen -lv -f /etc/sftpgo/ed25519 | tail -n +2 > /etc/sftpgo/ed25519.asciiart
RUN mkdir /var/log/sftpgo/ && chown sftpgo: /var/log/sftpgo/ && chmod -R u=rwX,g=rX,o= /etc/sftpgo/ && chown -R root:sftpgo /etc/sftpgo/
COPY --from=builder /usr/local/bin/sftpgo /usr/local/bin/sftpgo
USER sftpgo
CMD ["sftpgo", "serve", "--config-file", "/etc/sftpgo/sftpgo.toml", "--log-level", "warn", "--log-max-age", "1", "--log-file-path", "/var/log/sftpgo/sftpgo.log"]