使用dockerfile能力构建制品并打包容器

以常见的vue项目为例,使用如下Dockerfile

复制代码
# 第一阶段:构建应用
FROM node:18.18.1 AS builder
WORKDIR /app
# 复制package.json和package-lock.json到容器中(如果需要)
COPY package*.json ./
# 安装依赖
RUN npm install
# 复制源代码到容器中
COPY . .
# 执行构建命令
RUN npm run build:dev


# 第二阶段:部署到Nginx
FROM nginx:latest
# 清理默认的Nginx配置文件
#RUN rm -f /etc/nginx/conf.d/default.conf
# 如果需要,可以将自定义的Nginx配置文件复制进来
# COPY nginx.conf /etc/nginx/conf.d/
# 将Nginx的默认网站根目录设置为刚刚构建的应用
COPY --from=builder /app/dist /usr/share/nginx/html
# 暴露80端口
EXPOSE 80
# 启动Nginx服务
CMD ["nginx", "-g", "daemon off;"]

若代码使用的包管理器为pnpm,可修改第一阶段的构建过程,yarn同理

复制代码
# 第一阶段:构建应用
FROM node:18.18.1 AS builder

WORKDIR /app

# 安装pnpm
RUN npm install -g pnpm

# 复制package.json和pnpm-lock.yaml到容器中
COPY package*.json pnpm-lock.yaml ./

# 使用pnpm安装依赖
RUN pnpm install

# 复制源代码到容器中
COPY . .

# 执行构建命令
RUN pnpm run build:dev

第二阶段一样。

之前写过一篇jenkins部署nodejs前端项目_jenkins nodejs-CSDN博客,需要在jenkins所在服务器上安装npm pnpm,将构建过程集成到docker后,jenkins只需要安装docker就可以了。

相关推荐
a***592622 分钟前
docker离线安装及部署各类中间件(x86系统架构)
docker·中间件·系统架构
程序辕日记25 分钟前
Linux环境docker离线安装教程
linux·docker
一勺菠萝丶40 分钟前
Jenkins SSH 部署非 root 用户权限问题完整排查与解决方案(最推荐方法总结)
servlet·ssh·jenkins
可可苏饼干42 分钟前
容器与 Docker
运维·笔记·学习·docker·容器
107101 小时前
Docker学习笔记
笔记·学习·docker
洛可可白1 小时前
Ubuntu 上安装 Docker
linux·ubuntu·docker
赴前尘1 小时前
docker 配置ipv6地址
java·docker·容器
热爱跑步的恒川2 小时前
OpenEuler上Docker Compose部署PostgreSQL数据库
数据库·docker·postgresql
计算机小手2 小时前
内网穿透系列十五:Docker 部署,集成 Web UI,实现一键式异地组网
经验分享·网络协议·docker·开源软件