一个简单的CI操作,制作镜像并且发布
- 请先了解jenkins打包maven项目
- 在项目下 新建 docker 文件夹
- 新建 Dockerfile 文件
# 基础镜像 使用openjdk:17FROM docker.io/library/openjdk:17 # 将 jenkins-demo.jar 这个jar报 放到 容器中的usr/local这个目录下COPY jenkins-demo.jar /usr/local/ # 容器的工作目录 当我使用 docker exec -it 5e652be18192 /bin/bash 进入容器时就会在这个目录WORKDIR /usr/local # 最终在容器中运行的 command 命令 相当于你在 linux 下输入 java -jar jenkins-demo.jar 启动这个java 项目CMD java -jar jenkins-demo.jar
- 新建 docker-compose.yml 的文件
# 因为我的 docker-compose 使用的是 Docker Compose version v2.12.2 这个版本所以 使用 3.9# https://docs.docker.com/compose/compose-file/compose-file-v3/ 这里 官方示例就算3.9version"3.9"# optional since v1.27.0services jenkins-demo build context ./ # 指定dockerFile dockerfile Dockerfile # 镜像 image jenkins-demo # 容器名称 container_name jenkins-demo # 暴露端口 ports 8080:8080
- 在Post Steps 中 新建 Send files or execute commands over SSH
- Exec command
cd /usr/local/jenkins-demo-docker/docker mv ../target/*jar ./ docker compose down docker compose up -d--build
出现的问题
- 构建 执行报 没安装 docker compose
- docker compose 官网安装教程
- // 下载二进制文件到 /usr/local/bin/下
curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
- 给权限
sudo chmod +x /usr/local/bin/docker-compose
- 建立软连接 在所有目录都能使用 docker compose 命令 不然只有在 /usr/local/bin下才能使用
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- 查看安装版本
docker compose version
- 使用 docker-compose up -d --build 的时候报错 , 发现是因为我的版本比较高 现在的命令是这样的
docker compose up -d --build