ARG GOLANG_VERSION ARG NODE_VERSION ARG ALPINE_VERSION FROM golang:${GOLANG_VERSION}-alpine AS goBuilder RUN apk add cmake g++ gcc WORKDIR /app COPY ./scripts/swagger.sh . RUN ./swagger.sh install COPY ./go.mod . COPY ./go.sum . RUN go mod download COPY . . RUN ./swagger.sh init RUN go build -ldflags="-s -w" cmd/cafe-plaetschwiesle/cafe-plaetschwiesle.go FROM node:${NODE_VERSION}-alpine AS nodeBuilder WORKDIR /app COPY ./web/package.json . COPY ./web/yarn.lock . RUN yarn install --frozen-lockfile COPY --from=goBuilder /app/docs/swagger.json ../docs/swagger.json COPY ./web/ . RUN yarn run types:openapi RUN yarn run build FROM alpine:${ALPINE_VERSION} AS logo RUN apk add figlet RUN figlet Cafe > logo.txt FROM alpine:${ALPINE_VERSION} AS final RUN apk add tzdata WORKDIR /app COPY ./scripts/entrypoint.sh . COPY --from=logo /logo.txt . COPY --from=nodeBuilder /app/dist/ ./templates/ COPY --from=goBuilder /app/cafe-plaetschwiesle . COPY config.toml . ARG VERSION ENV VERSION=$VERSION ARG BUILD_TIME ENV BUILD_TIME=$BUILD_TIME ENTRYPOINT ["/app/entrypoint.sh"]