FROM node:22-alpine AS build-frontend WORKDIR /app COPY web/package*.json ./ RUN npm install RUN npm install -g @angular/cli COPY web . RUN ng build --configuration=production RUN ls -R dist FROM golang:1.24-alpine AS build-backend RUN apk add --no-cache --update gcc g++ WORKDIR /usr/src/app COPY go.mod go.mod COPY go.sum go.sum RUN go mod download RUN mkdir -p /web/dist/frontend/browser COPY . . COPY --from=build-frontend /app/dist/frontend/browser /usr/src/app/web/dist/frontend/browser ENV CGO_ENABLED=1 RUN go build -o=ng-blog cmd/main.go FROM alpine:latest WORKDIR / COPY --from=build-backend /usr/src/app/ng-blog /ng-blog EXPOSE 8080 ENTRYPOINT ["/ng-blog", "serve"]