编写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推送

文章作者: 桃花三月夭
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 桃花三月夭
后端技术 运维技术 Docker 运维
喜欢就支持一下吧