feat(deploy): dev/prod Dockerfiles in service dirs (backend/,web/), templates live beside rendered outputs, entrypoint copies /etc/booklib conf before resolver injection
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
FROM golang:1.26 AS base
|
||||
WORKDIR /app
|
||||
|
||||
FROM base AS dev
|
||||
# 源码由 compose 挂载进 /app;镜像只带工具链 + delve
|
||||
RUN go install github.com/go-delve/delve/cmd/dlv@latest
|
||||
EXPOSE 8080 2345
|
||||
CMD ["sh", "-c", "go mod download && dlv debug ./cmd/server --headless --listen=0.0.0.0:2345 --api-version=2 --continue --log"]
|
||||
@@ -0,0 +1,15 @@
|
||||
FROM golang:1.26-alpine AS build
|
||||
WORKDIR /src
|
||||
COPY backend/go.mod backend/go.sum ./
|
||||
RUN go mod download
|
||||
COPY backend/ ./
|
||||
RUN CGO_ENABLED=0 go build -trimpath -o /server ./cmd/server
|
||||
|
||||
FROM alpine:3.20 AS runner
|
||||
RUN adduser -D -H app
|
||||
COPY --from=build /server /server
|
||||
# /data/books 由宿主 bind(./api/storage)覆盖;/data 下目录预建并授权,兼容 podman
|
||||
RUN mkdir -p /data && chown app:app /data
|
||||
USER app
|
||||
EXPOSE 8080
|
||||
ENTRYPOINT ["/server"]
|
||||
Reference in New Issue
Block a user