当前位置: 首页 > news >正文

使用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 builderWORKDIR /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就可以了。

相关文章:

  • WPF 上位机 Modbus 入门必备的信息 C# 开发对接
  • Unity与Android交互通信系列(6)
  • 自动化数据驱动?最全接口自动化测试yaml数据驱动实战
  • 搜索与图论:染色法判别二分图
  • LeetCode 58. 最后一个单词的长度
  • Debian/Ubuntu linux安装软件
  • 算法体系-22 第二十二节:暴力递归到动态规划(四)
  • Python对象复制竟然有这么多种方式,赶紧学起来!
  • 示例:WPF中绑定枚举到ComboBox的方式
  • 多标签识别:JoyTag模型的图像标注革命【开源】
  • rabbitmq单机安装及性能测试
  • NAND闪存市场彻底复苏
  • hive split 特殊用法
  • 如何在WordPress中上传多种安装包文件
  • 第一章 基本指令
  • JS 中的深拷贝与浅拷贝
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 0x05 Python数据分析,Anaconda八斩刀
  • flutter的key在widget list的作用以及必要性
  • Fundebug计费标准解释:事件数是如何定义的?
  • golang中接口赋值与方法集
  • js 实现textarea输入字数提示
  • JSDuck 与 AngularJS 融合技巧
  • leetcode386. Lexicographical Numbers
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Python进阶细节
  • select2 取值 遍历 设置默认值
  • 服务器从安装到部署全过程(二)
  • 基于遗传算法的优化问题求解
  • 跨域
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 数组大概知多少
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微信小程序填坑清单
  • 延迟脚本的方式
  • 移动端解决方案学习记录
  • 【干货分享】dos命令大全
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #100天计划# 2013年9月29日
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (06)金属布线——为半导体注入生命的连接
  • (1)svelte 教程:hello world
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (HAL库版)freeRTOS移植STMF103
  • (k8s)Kubernetes本地存储接入
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (void) (_x == _y)的作用
  • (附源码)ssm码农论坛 毕业设计 231126
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (六)Flink 窗口计算
  • (十八)SpringBoot之发送QQ邮件