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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/27482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spark 面试题(十)

1. 简述Spark参数(性能)调优 ? Spark性能调优涉及多个方面,包括资源分配、任务并行度、内存管理、存储策略等。以下是一些关键的Spark性能调优参数: spark.executor.memory:设置Executor的内存大小。这是最…

qt如何在linux平台上设置编译生成windows程序文件,跨平台?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「qt的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!QT本来目标就是跨平台&#xf…

Commons-Collections篇-CC4链分析

前言 因为 CommonsCollections4 除 4.0 的其他版本去掉了 InvokerTransformer 继承 Serializable,导致该方法无法序列化。 同时 CommonsCollections 4的版本 TransformingComparator 继承了 Serializable接口,而CommonsCollections 3里是没有的&#xf…

hrm人力管理系统源码(从招聘到薪酬的全过程人力管控系统)

一、项目介绍 一款全源码可二开,可基于云部署、私有部署的企业级数字化人力资源管理系统,涵盖了招聘、人事、考勤、绩效、社保、酬薪六大模块,解决了从人事招聘到酬薪计算的全周期人力资源管理,符合当下大中小型企业组织架构管理运…

Stringboot

一、概述 springboot是spring家族中的一个全新框架,用来简化spring程序的创建和开发过程。在以往我们通过SpringMVCSpringMybatis框架进行开发的时候,我们需要配置web.xml,spring配置,mybatis配置,然后整合在一起&…

django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.33).

django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.33). 一、原因分析 在新版的Django默认需要MySQL 8或更高版本,才能运行。 二、解决办法 1、升级mysql数据库版本 只需要将mysql版本升级到8.0,即可解决,当然这…

yum方式更新Jenkins

目的 使用yum方式更新Jenkins。 步骤 查看最新可用版本 $ yum list jenkins Last metadata expiration check: 0:03:44 ago on Fri Jun 14 06:10:01 2024. Installed Packages jenkins.noarch 2.452.1-1.1 jenkins Available Pa…

基于esp8266_点灯blinker_智能家居

文章目录 一 实现思路1 项目简介2 项目构成3 代码实现4 外壳部分 二 效果展示UI图片 一 实现思路 摘要:esp8266,mixly,点灯blinker,物联网,智能家居,3donecut 1 项目简介 1 项目效果 通过手机blinker app…

宝藏速成秘籍(3)选择排序法

一、前言 1.1、概念 选择排序法(Selection Sort)是一种简单直观的排序算法。它的基本思想是:每次从待排序的数组中选择最小(或最大)的元素,将其放在已排序部分的末尾,直到所有元素都排序完毕。…

Unet心电信号分割方法(Pytorch)

心血管疾病是一种常见病,严重影响人们的健康及日常生活。 近年来随着人们生活习惯的不断变化,心血管疾病对人们影响愈加明显,发病率呈现出逐年攀升的趋势,心血管疾病是中国城乡居民死亡的首要原因。心电图ECG已被广泛用于研究心跳…

光学雨量监测站:科技赋能,精准监测降水过程

TH-YJ3随着科技的不断进步,光学雨量监测站作为一种先进的降水监测设备,正逐渐在气象、水文、农业等领域发挥重要作用。光学雨量监测站以其高精度、高可靠性、实时性强的特点,为降水数据的收集和分析提供了强有力的支持,为相关领域…

Nginx负载均衡之长连接负载均衡

当客户端通过浏览器访问 HTTP 服务器时,HTTP 请求会通过 TCP 协议与 HTTP 服务器建立一条访问通道,当本次访问数据传输完毕后,该 TCP 连接会立即被断开,由于这个连接存在的时间很短,所以 HTTP 连接也被称为短连接。 …

Maven:The container ‘Maven Dependencies‘ references non existing library

我们在使用maven过程中,会遇到 “The container Maven Dependencies references non existing library”那我们如何解决呢? 解决方法:将eclipse中maven插件中“resolve dependencies from workspace projects”的选项取消 默认的本地库更改…

Lua实现自定义函数面向对象编程

本文目录 1、引言2、原理3、实例4、层析验证 文章对应视频教程: 暂无,可以关注我的B站账号等待更新。 点击图片或链接访问我的B站主页~~~ 1、引言 在现代软件开发中,面向对象编程(OOP)已经成为一种广泛使用的编程范式…

俄罗斯Yandex推广投放如何开户?Yandex广告开户和代运营推广流程详解_俄罗斯_受众_搜索引擎

在俄罗斯进行Yandex广告推广是一种有效的在线营销方式,特别是针对俄罗斯市场。Yandex是俄罗斯最受欢迎的搜索引擎,类似于Google在全球范围内的地位。以下是通过Yandex广告推广的一般步骤,以及如何通过上海上弦进行广告开户和代运营。 1. Yan…

怎么图片转excel表格?推荐三个方法

怎么图片转excel表格?在信息化高速发展的今天,图片转Excel表格的需求日益凸显,尤其是在职场办公中,这一需求更是显得尤为迫切。为了满足广大用户的需求,市面上涌现出了众多图片转Excel的软件。今天,就为大家…

Git 基础操作(一)

Git 基础操作 配置Git 安装完Git后,首先要做的事情是设置你的 用户名 和 e-mail 地址。这样在你向仓库提交代码的时候,就知道是谁提交的,以及提交人的联系方式。 配置用户名和邮箱 使用git config [--global] user.name "你的名字&qu…

Windows如何找回永久删除的文件?完整教程看完即会!

可以找回永久删除的文件? 你是否也在Windows 10中永久删除过文件?什么是永久删除?通常有5种方法可以永久删除文件: 正常删除文件,然后在回收站中再次删除。使用命令提示符:“del”删除文件。使用“ShiftD…

RS485和CAN电路中的TVS管选择

在RS485和CAN电路设计中,经常要考虑“静电和浪涌保护”,怎么选择TVS管,很少有人讲解。 1、先了解TVS管 TVS管有单向管和双向管,通常后缀为CA的是双向TVS管,只有字母A的是单向TVS管。见下图: 2、TVS选择依…

关于大数据量上传问题

主要的耗时不在上传而在压缩,短数据的并行量可以上去。 优化: 非必要不上传(不需要图像信息的时候,只上传时序信息) 本地校验