Jenkins+Docker Compose发布Nuxt项目
编写Dockerfile与docker-compose.yml
Dockerfile
这里使用了一个Nuxt项目作为示例
在Node基础镜像内安装了PM2 用以守护运行nuxt项目
注意:一个RUN命令会创建一个镜像层 所以在安装依赖与打包时,需要合并成一个RUN命令
否则执行nuxt build打包命令时会报找不到依赖
# 编译阶段
FROM node:16.20.0-alpine
LABEL author=soulerror
LABEL email=soulerror@qq.com
MAINTAINER soulerror
WORKDIR /app
COPY . .
# 安装依赖并打包
RUN yarn --registry https://registry.npmmirror.com && \
yarn run nuxt build
RUN yarn global add pm2 --registry https://registry.npmmirror.com
EXPOSE 9000
CMD ["pm2-docker","start","npm","--name","toolkit","--","start"]
docker-compose.yml
这里是规定一些参数,如容器名、运行内存限制、端口映射等
注意:指定镜像时,如果是镜像私服,需要加上前面的私服地址,否则会直接从dockerhub拉取,这里我使用的是阿里云的免费镜像仓库服务
networks:
1panel-network:
external: true
services:
toolkit:
container_name: toolkit
image: registry.cn-chengdu.aliyuncs.com/soulerror/toolkit:latest
deploy:
resources:
limits:
memory: 256M
labels:
createdBy: soulerror
ports:
- 20090:9000
restart: always
version: "3"
上面两个文件都最好放在项目根目录下,以便后续的打包和部署
Jenkins相关配置
安装Docker插件
在Jenkins插件市场搜索docker并安装
Jenkins配置远端节点打包
如果安装jenkins的机器没有安装docker或者机器配置较低,不想用本机编译打包时
可以使用新版jenkins(我用的是2.449版本)的远端打包功能
打开Jenkins的 系统管理 -> 系统配置 -> Clouds
点击New cloud按钮,添加输入节点,在弹出框中 类型选择Docker,并为节点命名,点击Create按钮创建新的云节点
在Cloud节点配置页面为刚刚创建的云节点配置docker远端地址,如果需要连接密码,可以在Server credentials中配置
点击右下方Test Connection测试是否链通
成功连接后保存该节点
Jenkins Job配置
配置代码仓库路径与密钥
配置打包服务
在Build Steps模块【增加构建步骤】选择【Build / Publish Docker Image】选项
然后在配置中选择需要打包部署的节点,这里我们选择刚刚创建好的Docker Cloud节点
填写镜像地址及版本号
已经填写docker仓库私服的账号密码
注意:如果是私服上的镜像 一定要填写私服的路径 否则推送镜像时会往dockerhub推送
本文链接:
/archives/1711008949459
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
桃花三月夭!
喜欢就支持一下吧