Dockerfile in betterlog-0.20.2 vs Dockerfile in betterlog-0.20.3

- old
+ new

@@ -1,44 +1,49 @@ -FROM alpine:3.14.2 AS builder +FROM golang:1.18-alpine AS builder # Update/Upgrade/Add packages for building -RUN apk add --no-cache bash git go build-base +RUN apk add --no-cache bash git build-base -# Build happening +# Create appuser. +ENV USER=appuser +ENV UID=10001 +RUN adduser \ + --disabled-password \ + --gecos "" \ + --home "/none" \ + --shell "/sbin/nologin" \ + --no-create-home \ + --uid "${UID}" \ + "${USER}" + + +# Build betterlog + WORKDIR /build/betterlog ADD . . ENV GOPATH=/build/betterlog/gospace RUN make clobber -RUN go get -u github.com/betterplace/go-init - RUN make setup all -FROM alpine:3.14.2 AS runner +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags='-w -s' -o betterlog-server cmd/betterlog-server/main.go -# Update/Upgrade/Add packages +FROM scratch AS runner -RUN apk add --no-cache bash ca-certificates +COPY --from=builder /etc/passwd /etc/passwd -RUN apk add --no-cache tzdata && \ - cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime && \ - echo Europe/Berlin >/etc/timezone && \ - apk del tzdata +COPY --from=builder /etc/group /etc/group -ARG APP_DIR=/app +COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt -RUN adduser -h ${APP_DIR} -s /bin/bash -D appuser +WORKDIR / -RUN mkdir -p /opt/bin +COPY --from=builder --chown=appuser:appuser /build/betterlog/betterlog-server / -COPY --from=builder --chown=appuser:appuser /build/betterlog/gospace/bin/go-init /build/betterlog/betterlog-server /opt/bin/ - -ENV PATH /opt/bin:${PATH} - EXPOSE 5514 -CMD [ "/opt/bin/go-init", "-pre", "/bin/sleep 3", "-main", "/opt/bin/betterlog-server" ] +ENTRYPOINT [ "/betterlog-server" ]