# syntax=docker/dockerfile:1 ## ## Build Backend ## FROM golang:1.18-buster AS build_backend ENV GO111MODULE=on \ CGO_ENABLE=1 \ GOOS=linux \ GOARCH=amd64 WORKDIR /app COPY go.mod . COPY go.sum . RUN go mod download RUN apt update && apt install -y ca-certificates COPY *.go ./ COPY auth/. auth/. COPY controllers/. controllers/. COPY models/. models/. COPY server/. server/. RUN go build -a --installsuffix cgo -v -tags netgo -ldflags '-extldflags "-static"' -o /main . ## ## Build Frontend ## FROM node:16 AS build_frontend WORKDIR /usr/src/app RUN npm install -g pnpm COPY assets/package.json ./ COPY assets/pnpm-lock.yaml ./ RUN pnpm i COPY assets/. . RUN pnpm build ## ## Deploy ## FROM scratch LABEL maintainer="Jasper Spahl " ENV WOKABLE_MODE="release" WORKDIR / COPY --from=build_backend /main ./ COPY --from=build_frontend /usr/src/app/dist/. assets/dist/. EXPOSE 8080 ENTRYPOINT [ "/main" ]