woj-server/Server.Dockerfile

35 lines
938 B
Docker

# Go builder
FROM docker.io/library/golang:alpine AS go-builder
ENV GOPROXY=https://goproxy.cn
ENV CGO_ENABLED=0
WORKDIR /builder
RUN apk add --no-cache git make
RUN --mount=type=cache,id=golang,target=/go/pkg go install github.com/swaggo/swag/cmd/swag@latest
COPY go.mod /builder/go.mod
COPY go.sum /builder/go.sum
RUN --mount=type=cache,id=golang,target=/go/pkg go mod download
COPY . /builder
RUN --mount=type=cache,id=golang,target=/go/pkg make build
# UI Builder
FROM git.0x7f.app/woj/woj-ui:1.0.0 AS ui-builder
RUN find /app -type f -name "*.map" -delete
# main image
FROM docker.io/library/alpine
WORKDIR /app
RUN apk --no-cache add tzdata ca-certificates libc6-compat bash
COPY --from=go-builder /builder/config.docker.yaml /app
COPY --from=go-builder /builder/docker-entrypoint.sh /app
COPY --from=go-builder /builder/woj /app
COPY --from=ui-builder /app /app/resource/frontend
ENTRYPOINT ["/app/docker-entrypoint.sh"]