feat(docker): build go project
This commit is contained in:
24
Dockerfile
24
Dockerfile
@@ -1,23 +1,13 @@
|
|||||||
FROM node:20-slim AS base
|
FROM golang:1.23.2
|
||||||
|
|
||||||
ENV PNPM_HOME="/pnpm"
|
|
||||||
ENV PATH="$PNPM_HOME:$PATH"
|
|
||||||
|
|
||||||
RUN corepack enable
|
|
||||||
|
|
||||||
COPY . /app
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
FROM base AS prod-deps
|
COPY go.mod ./
|
||||||
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
|
RUN go mod download
|
||||||
|
|
||||||
FROM base AS build
|
COPY *.go ./
|
||||||
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
|
COPY public ./public
|
||||||
RUN pnpm run build
|
RUN go build -o ./server
|
||||||
|
|
||||||
FROM base
|
|
||||||
|
|
||||||
COPY --from=build /app/.output /app/.output
|
|
||||||
|
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
CMD ["node", ".output/server/index.mjs"]
|
CMD ["./server"]
|
||||||
|
|||||||
Reference in New Issue
Block a user