mirror of
https://github.com/la5nta/pat
synced 2026-08-13 17:46:54 -04:00
This caused issues in various areas where Pat (and/or dependencies) relied on os.TempDir() store temporary files. E.g. when running `pat updateforms`. We can't do this inside the build container, as there is no way of specifying file permissions when doing COPY --from. The solution (inspired by the distroless images) is to ADD a pre-prepared tarball with the correct file permissions. `mkdir -m 01777 tmp && tar --owner=root --group=root -cf tmp.tar tmp`
25 lines
745 B
Docker
25 lines
745 B
Docker
FROM golang:alpine as builder
|
|
RUN apk add --no-cache git ca-certificates
|
|
WORKDIR /src
|
|
ADD go.mod go.sum ./
|
|
RUN go mod download
|
|
ADD . .
|
|
RUN go build -o /src/pat
|
|
|
|
FROM scratch
|
|
LABEL org.opencontainers.image.source=https://github.com/la5nta/pat
|
|
LABEL org.opencontainers.image.description="Pat - A portable Winlink client for amateur radio email"
|
|
LABEL org.opencontainers.image.licenses=MIT
|
|
# Make sure we have a /tmp directory with the correct permissions (01777)
|
|
ADD .docker/tmp.tar /
|
|
COPY --from=builder /etc/ssl/certs /etc/ssl/certs
|
|
COPY --from=builder /src/pat /bin/pat
|
|
USER 65534:65534
|
|
WORKDIR /app
|
|
ENV XDG_CONFIG_HOME=/app
|
|
ENV XDG_DATA_HOME=/app
|
|
ENV XDG_STATE_HOME=/app
|
|
ENV PAT_HTTPADDR=:8080
|
|
EXPOSE 8080
|
|
ENTRYPOINT ["/bin/pat"]
|
|
CMD ["http"]
|