Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
悠灵
Chatroom
Commits
8f99361a
Commit
8f99361a
authored
Aug 31, 2025
by
root
Browse files
docker 2
parent
fc48bbd1
Changes
2
Hide whitespace changes
Inline
Side-by-side
Dockerfile
View file @
8f99361a
# 使用官方 Node.js 基础镜像
FROM
node:18-alpine
# 设置工作目录
# 第一阶段:依赖安装
FROM
node:18-alpine
AS
deps
RUN
apk add
--no-cache
openssl
# Prisma 需要 openssl
WORKDIR
/app
# 复制包管理文件(优先复制以利用 Docker 缓存)
COPY
package.json pnpm-lock.yaml ./
# 安装 pnpm 和依赖
RUN
npm
install
-g
pnpm
&&
\
pnpm
install
--frozen-lockfile
# 复制所有项目文件
# 第二阶段:构建应用
FROM
node:18-alpine
AS
builder
WORKDIR
/app
COPY
--from=deps /app/node_modules ./node_modules
COPY
. .
RUN
pnpm prisma generate
&&
\
pnpm build
# 生成 Prisma 客户端
RUN
pnpm prisma generate
# 构建 Next.js 应用
RUN
pnpm build
# 暴露端口(Next.js 默认 3000)
# 第三阶段:运行环境
FROM
node:18-alpine
AS
runner
WORKDIR
/app
ENV
NODE_ENV production
COPY
--from=builder /app/public ./public
COPY
--from=builder /app/.next ./.next
COPY
--from=builder /app/node_modules ./node_modules
COPY
--from=builder /app/package.json ./
EXPOSE
3000
# 启动命令
CMD
["pnpm", "start"]
\ No newline at end of file
docker-compose.yml
0 → 100644
View file @
8f99361a
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment