ARG DOCKER_IO=docker.io FROM ${DOCKER_IO}/library/node:16 as frontend-builder WORKDIR /micro COPY frontend . RUN npm install -g @angular/cli && \ npm install && \ npm run build FROM ${DOCKER_IO}/library/golang:1.19 as backend-builder WORKDIR /micro COPY . . COPY --from=frontend-builder /micro/dist frontend/dist RUN go install github.com/swaggo/swag/cmd/swag@latest && \ swag init && \ go install github.com/UnnoTed/fileb0x@latest && \ fileb0x b0x.yaml && \ CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o dashboard . FROM ${DOCKER_IO}/library/busybox:latest # Copy certs and passwd from builder COPY --from=backend-builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=backend-builder /etc/passwd /etc/passwd WORKDIR /usr/local/bin COPY --from=backend-builder /micro/dashboard . EXPOSE 80 ENTRYPOINT [ "/usr/local/bin/dashboard" ]