mirror of
https://github.com/woodchen-ink/random-api-go.git
synced 2025-07-18 05:42:01 +08:00
更新Dockerfile以简化前端依赖安装和源代码复制流程,调整工作目录和构建命令,优化构建过程。
This commit is contained in:
parent
bb8c011062
commit
2c0073f266
38
Dockerfile
38
Dockerfile
@ -3,26 +3,14 @@ FROM node:22-alpine AS frontend-builder
|
|||||||
|
|
||||||
WORKDIR /app/web
|
WORKDIR /app/web
|
||||||
|
|
||||||
# 复制前端依赖文件(优先缓存依赖层)
|
# 复制前端依赖文件
|
||||||
COPY web/package*.json ./
|
COPY web/package*.json ./
|
||||||
|
|
||||||
# 安装前端依赖(包括开发依赖,构建需要)
|
# 安装前端依赖(包括开发依赖,构建需要)
|
||||||
RUN npm ci --prefer-offline --no-audit --progress=false
|
RUN npm ci
|
||||||
|
|
||||||
# 复制前端配置文件
|
# 复制前端源代码
|
||||||
COPY web/next.config.ts ./
|
COPY web/ ./
|
||||||
COPY web/tsconfig.json ./
|
|
||||||
COPY web/postcss.config.mjs ./
|
|
||||||
COPY web/components.json ./
|
|
||||||
COPY web/eslint.config.mjs ./
|
|
||||||
COPY web/next-env.d.ts ./
|
|
||||||
|
|
||||||
# 复制前端源代码目录
|
|
||||||
COPY web/app ./app
|
|
||||||
COPY web/components ./components
|
|
||||||
COPY web/lib ./lib
|
|
||||||
COPY web/types ./types
|
|
||||||
COPY web/public ./public
|
|
||||||
|
|
||||||
# 构建前端静态文件
|
# 构建前端静态文件
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
@ -45,19 +33,15 @@ RUN go mod download && go mod verify
|
|||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
# 构建后端应用
|
# 构建后端应用
|
||||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=$TARGETARCH go build \
|
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o random-api .
|
||||||
-ldflags='-w -s -extldflags "-static"' \
|
|
||||||
-a -installsuffix cgo \
|
|
||||||
-o random-api .
|
|
||||||
|
|
||||||
# 运行阶段
|
# 运行阶段
|
||||||
FROM alpine:latest
|
FROM alpine:latest
|
||||||
|
|
||||||
# 安装必要的工具
|
# 安装必要的工具
|
||||||
RUN apk --no-cache add ca-certificates tzdata tini && \
|
RUN apk --no-cache add ca-certificates tzdata tini
|
||||||
adduser -D -s /bin/sh appuser
|
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /root/
|
||||||
|
|
||||||
# 从后端构建阶段复制二进制文件
|
# 从后端构建阶段复制二进制文件
|
||||||
COPY --from=backend-builder /app/random-api .
|
COPY --from=backend-builder /app/random-api .
|
||||||
@ -65,12 +49,8 @@ COPY --from=backend-builder /app/random-api .
|
|||||||
# 从前端构建阶段复制静态文件
|
# 从前端构建阶段复制静态文件
|
||||||
COPY --from=frontend-builder /app/web/out ./web/out
|
COPY --from=frontend-builder /app/web/out ./web/out
|
||||||
|
|
||||||
# 创建必要的目录并设置权限
|
# 创建必要的目录
|
||||||
RUN mkdir -p /app/data/logs && \
|
RUN mkdir -p /root/data/logs
|
||||||
chown -R appuser:appuser /app
|
|
||||||
|
|
||||||
# 切换到非root用户
|
|
||||||
USER appuser
|
|
||||||
|
|
||||||
# 暴露端口
|
# 暴露端口
|
||||||
EXPOSE 5003
|
EXPOSE 5003
|
||||||
|
Loading…
x
Reference in New Issue
Block a user