ezbookkeeping/Dockerfile

57 lines
2 KiB
Text
Raw Permalink Normal View History

2020-10-18 11:57:43 +00:00
# Build backend binary file
FROM golang:1.25.7-alpine3.23 AS be-builder
ARG RELEASE_BUILD
ARG BUILD_PIPELINE
ARG BUILD_UNIXTIME
ARG BUILD_DATE
ARG CHECK_3RD_API
ARG SKIP_TESTS
ENV RELEASE_BUILD=$RELEASE_BUILD
ENV BUILD_PIPELINE=$BUILD_PIPELINE
ENV BUILD_UNIXTIME=$BUILD_UNIXTIME
ENV BUILD_DATE=$BUILD_DATE
ENV CHECK_3RD_API=$CHECK_3RD_API
ENV SKIP_TESTS=$SKIP_TESTS
2021-04-11 14:51:22 +00:00
WORKDIR /go/src/github.com/mayswind/ezbookkeeping
2020-10-17 14:20:51 +00:00
COPY . .
RUN docker/backend-build-pre-setup.sh
RUN apk add git gcc g++ libc-dev
RUN ./build.sh backend
2020-10-17 14:20:51 +00:00
2020-10-18 11:57:43 +00:00
# Build frontend files
FROM --platform=$BUILDPLATFORM node:24.14.0-alpine3.23 AS fe-builder
ARG RELEASE_BUILD
ARG BUILD_PIPELINE
ARG BUILD_UNIXTIME
ARG BUILD_DATE
ENV RELEASE_BUILD=$RELEASE_BUILD
ENV BUILD_PIPELINE=$BUILD_PIPELINE
ENV BUILD_UNIXTIME=$BUILD_UNIXTIME
ENV BUILD_DATE=$BUILD_DATE
2021-04-11 14:51:22 +00:00
WORKDIR /go/src/github.com/mayswind/ezbookkeeping
2020-10-18 11:57:43 +00:00
COPY . .
RUN docker/frontend-build-pre-setup.sh
RUN apk add git
RUN ./build.sh frontend
2020-10-18 11:57:43 +00:00
2020-10-17 14:20:51 +00:00
# Package docker image
FROM alpine:3.23.3
2020-12-03 17:02:33 +00:00
LABEL maintainer="MaysWind <i@mayswind.net>"
2021-04-11 14:51:22 +00:00
RUN addgroup -S -g 1000 ezbookkeeping && adduser -S -G ezbookkeeping -u 1000 ezbookkeeping
2021-03-08 15:05:49 +00:00
RUN apk --no-cache add tzdata
2020-10-17 14:20:51 +00:00
COPY docker/docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
2021-06-06 15:38:32 +00:00
RUN mkdir -p /ezbookkeeping && chown 1000:1000 /ezbookkeeping \
&& mkdir -p /ezbookkeeping/data && chown 1000:1000 /ezbookkeeping/data \
&& mkdir -p /ezbookkeeping/log && chown 1000:1000 /ezbookkeeping/log \
&& mkdir -p /ezbookkeeping/storage && chown 1000:1000 /ezbookkeeping/storage
2021-06-06 15:38:32 +00:00
WORKDIR /ezbookkeeping
COPY --from=be-builder --chown=1000:1000 /go/src/github.com/mayswind/ezbookkeeping/ezbookkeeping /ezbookkeeping/ezbookkeeping
COPY --from=fe-builder --chown=1000:1000 /go/src/github.com/mayswind/ezbookkeeping/dist /ezbookkeeping/public
COPY --chown=1000:1000 conf /ezbookkeeping/conf
COPY --chown=1000:1000 templates /ezbookkeeping/templates
COPY --chown=1000:1000 LICENSE /ezbookkeeping/LICENSE
2020-12-03 18:26:54 +00:00
USER 1000:1000
2020-10-17 14:20:51 +00:00
EXPOSE 8080
ENTRYPOINT ["/docker-entrypoint.sh"]