Docker部署
步骤 1:修改docker-compose.yml
根据你的实际项目配置变量内容,填写你所支持的部分。
完整的文件内容如下:
bash
services:
duoge-website:
build:
context: .
dockerfile: Dockerfile
container_name: nuxtpro-admin
restart: unless-stopped
ports:
- "3002:3002"
environment:
PORT: 3002
DATABASE_URL: "mysql://username:password@ip:port/nuxtpro"
BETTER_AUTH_SECRET: B3E4q0JYr5pRpQRwvxo9jfOLz48TKrJL # 随机32位密钥
BETTER_AUTH_URL: http://localhost:3002
NUXT_RESEND_API_KEY: # your resend api key
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries:1", "--spider", "http://localhost:3002"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
- app-network
networks:
app-network:
driver: bridge步骤 2:修改Dockerfile端口
将此处的PORT端口改成你想自定义的即可。务必和你项目里的env的以及docker-compose.yml的一致。
完整的文件内容如下:
bash
# 多阶段构建
FROM node:20-alpine AS builder
WORKDIR /app
# 复制依赖文件
COPY package.json pnpm-lock.yaml ./
# 安装pnpm并安装依赖
RUN npm install -g pnpm && pnpm install --frozen-lockfile
# 复制源代码
COPY . .
# 构建应用
RUN pnpm run build:prod
# 生产镜像
FROM node:20-alpine AS runner
WORKDIR /app
# 只复制构建产物
COPY --from=builder /app/.output ./.output
# 暴露端口
EXPOSE 3002
# 设置环境变量
ENV NODE_ENV=production
ENV PORT=3002
# 启动应用
CMD ["node", ".output/server/index.mjs"]步骤 3:构建并启动容器
进入到保存docker-compose.yml 文件的目录,使用命令等待项目构建成功
bash
docker-compose up -d --build步骤 4:查看日志
使用命令查看项目运行情况
bash
docker-compose logs -f此处附上停止容器命令
bash
docker-compose down此处附上重启容器命令
bash
docker-compose restart