Use multi-stage build for Docker

This commit is contained in:
Josef Vogt 2021-03-19 20:50:09 +01:00
parent 10dc7a4a86
commit d7db672c01

View file

@ -1,16 +1,23 @@
FROM alpine
FROM golang:alpine3.13 AS builder
LABEL stage=builder
WORKDIR /workspace
COPY . .
RUN CGO_ENABLED=0 go build -o rest-server ./cmd/rest-server
FROM alpine:3.13 AS final
WORKDIR /app
ENV DATA_DIRECTORY /data
ENV PASSWORD_FILE /data/.htpasswd
ENV PATH="/app:${PATH}"
RUN apk add --no-cache --update apache2-utils
COPY docker/create_user /usr/bin/
COPY docker/delete_user /usr/bin/
COPY docker/entrypoint.sh /entrypoint.sh
COPY rest-server /usr/bin
COPY docker/. .
COPY --from=builder /workspace/rest-server .
VOLUME /data
EXPOSE 8000
CMD [ "/entrypoint.sh" ]
CMD [ "./entrypoint.sh" ]