jenkins中怎么利用docker部署微服务
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,这篇文章给大家介绍jenkins中怎么利用docker部署微服务,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。构建镜像DOckerFile 格式如下FROM java:8-jre
千家信息网最后更新 2025年02月06日jenkins中怎么利用docker部署微服务
这篇文章给大家介绍jenkins中怎么利用docker部署微服务,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
构建镜像
DOckerFile 格式如下
FROM java:8-jre
MAINTAINER 303600370@qq.com
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mkdir -p /gateway
WORKDIR /gateway
EXPOSE 9999
docker build -t upms:1.0 . //注意此处DockerFile在当前目录,否则请指定路径
//查看我们生成的镜像
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
upms 1.0 5a85b918f97b About an hour ago 311MB
auth 1.0 ebe9c89204a3 2 hours ago 311MB
gateway 1.0 d569bd2776b5 2 hours ago 311MB
register 1.0 72b8e3d9053d 6 hours ago 311MB
jenkinsci/blueocean latest 15c11ce3d610 46 hours ago 567MB
jenkins/jenkins latest ca03aad4393c 2 days ago 648MB
gogs/gogs latest a9376695685c 3 days ago 90.6MB
portainer/portainer latest 2869fc110bf7 4 weeks ago 78.6MB
java 8-jre e44d62cf8862 3 years ago 311MB
jenkins 安装
docker run \
-u root \
--rm \ --1
-d \ --2
-p 8080:8080 \ --3
-p 50000:50000 \ --4
-v jenkins-data:/var/jenkins_home \ --5
-v /var/run/docker.sock:/var/run/docker.sock \ --6
jenkinsci/blueocean --7
1 jenkinsci/blueocean 关闭时自动删除Docker容器(下图为实例)。如果您需要退出Jenkins,这可以保持整洁。
2 jenkinsci/blueocean 在后台运行容器(即"分离"模式)并输出容器ID。如果您不指定此选项, 则在终端窗口中输出正在运行的此容器的Docker日志。
3 映射(例如"发布")jenkinsci/blueocean 容器的端口8080到主机上的端口8080。 第一个数字代表主机上的端口,而最后一个代表容器的端口。因此,如果您为此选项指定 -p 49000:8080 ,您将通过端口49000访问主机上的Jenkins。
4 将 jenkinsci/blueocean 容器的端口50000 映射到主机上的端口50000。 如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当"主"Jenkins服务器,或者简称为"Jenkins主"), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。 您可以通过" 配置全局安全性" 页面更改Jenkins主服务器上的端口号。如果您要将您的Jenkins主机的JNLP代理端口的TCP端口 值更改为51000(例如),那么您需要重新运行Jenkins(通过此 docker run …命令)并指定此"发布"选项 -p 52000:51000,其中最后一个值与Jenkins master上的这个更改值相匹配,第一个值是Jenkins主机的主机上的端口号, 通过它,基于JNLP的Jenkins代理与Jenkins主机进行通信 - 例如52000。
映射在容器中的`/var/jenkins_home` 目录到具有名字 jenkins-data 的volume。 如果这个卷不存在,那么这个 docker run 命令会自动为你创建卷。 如果您希望每次重新启动Jenkins(通过此 docker run ... 命令)时保持Jenkins状态,则此选项是必需的 。 如果你没有指定这个选项,那么在每次重新启动后,Jenkins将有效地重置为新的实例。
5 所述的 jenkins-data 卷也可以 docker volume create命令创建: docker volume create jenkins-data 代替映射 /var/jenkins_home 目录转换为Docker卷,还 可以将此目录映射到计算机本地文件系统上的目录。 例如,指定该选项 -v $HOME/jenkins:/var/jenkins_home 会将容器的 /var/jenkins_home 目录映射 到 本地计算机上目录中的 jenkins 子目录, 该$HOME目录通常是 /Users//jenkins 或`/home//jenkins` 。
6 (可选 /var/run/docker.sock 表示Docker守护程序通过其监听的基于Unix的套接字。 该映射允许 jenkinsci/blueocean 容器与Docker守护进程通信, 如果 jenkinsci/blueocean 容器需要实例化其他Docker容器,则该守护进程是必需的。 如果运行声明式管道,其语法包含agent部分用 docker
例如, agent { docker { ... } } 此选项是必需的。 在Pipeline Syntax 页面上阅读更多关于这个的信息 。
jenkinsci/blueocean Docker镜像本身。如果此镜像尚未下载,则此 docker run 命令 将自动为您下载镜像。此外,如果自上次运行此命令后发布了此镜像的任何更新, 则再次运行此命令将自动为您下载这些已发布的镜像更新。 注意:这个Docker镜像也可以使用以下 docker pull命令独立下载(或更新) : docker pull jenkinsci/blueocean 注意: 如果复制并粘贴上面的命令片段不起作用,请尝试在此处复制并粘贴此无注释版本:
完整命令
docker run -u root -d -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock --restart=always jenkinsci/blueocean
jenkins 使用默认安装后,登录页面
新建一个构建任务(作为代码管理)
选择git
保存任务 -> 构建任务
java 服务构建
新建任务 (添加shell)
BUILD_ID=donKillMe
api_pid=` docker ps -a | grep getaway | awk '{print $1}'`
echo api_pid = $api_pid
if [ "$api_pid" != "" ]; then
echo restart getaway
docker restart $api_pid
echo sleep 3s
fi
if [ "$api_pid" == "" ]; then
echo mkdir images
docker run --add-host=pigx-mysql:172.17.0.1 -d -p 4000:4000 -v /getaway:/getaway --name getaway getaway:1.0 java -jar /getaway/getaway.jar
echo sleep 3s
fi
构建
附录
jenkins 数据地址 (可能)
//项目根目录
/var/lib/docker/volumes/jenkins-data/_data/workspace/
//jar目录
/var/jenkins_home/workspace/getaway/target/getaway.jar
//日志目录
/var/lib/docker/volumes/jenkins-data/_data/workspace/getaway/logs/
初始密码 目录 /var/jenkins_home/secrets/initialAdminPassword
关于jenkins中怎么利用docker部署微服务就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
容器
目录
命令
端口
主机
镜像
运行
服务
代理
任务
实例
更多
程序
页面
更新
通信
代表
内容
口号
日志
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
香港有哪些软件开发有限公司
上海达惠网络技术有限公司
绵阳市网络安全保卫支队号码
每股收益国泰安数据库
数据库学生信息课程成绩表
网络技术的发展有多快
我的世界2b2t服务器存档种子
杭州数据库应用就业怎么样
王者荣耀原先服务器进不去
河南运营软件开发
数据库1040怎么办
社交媒体和网络安全问卷
嘉兴触摸屏工控机服务器
oracle数据库解锁
服务器开机时间是什么意思
ios手机软件开发企业
网络技术员非IT企业
数据库建立一个关闭宏
黑龙江省商务学院网络技术
客户服务器英文名称
网络技术 提升工作效率
同一个数据库不同字段的语句
目前网络安全攻击的趋势有
服务器怎么增小硬盘
网络安全风险描述和危害程度
稳定数据库
软件开发合同需求完成不了
软件开发都有哪些软件
河南新星科技互联网医院
镇政府网络安全工作责任制细则