jenkins和docker结合生成go语言镜像的整个过程

docker安装jenkins

dockers安装

本人使用的是Windows版本的docker,具体操作流程可以参考https://www.cnblogs.com/wyt007/p/10656813.html

jenkins 安装

在安装完毕docker以后使用指令
下面展示一些 内联代码片。获取最新的jenkins
如果不是最新的后续有些插件会安装不上

docker pull jenkins/jenkins:lts

下载Jenkins
下载以后安装Jenkins指令为:

docker run --name myjenkins -p 8080:8080 -v /var/jenkins_home:D:\jenkinstest myjenkins_new

在这里一定要设置端口号,不能简单的使用docker run jenkins这种启动方式。启动完成后就可以看到
jenkins 的container
这时候尽可以通过127.0.0.1:8080端口访问到jenkins,密码的登陆请参照其它博客。
login jenkins
Unlock Jenkins 的密码如果安装过程中没有注意看安装日志的化可以通过进入pod中在指定文件中查找

docker exec -it 03dbe2acb3bb bash
cat /var/lib/jenkins/secrets/initialAdminPassword

golang安装

jenkins自身不带有golang编译器,需要我们下载相关的插件如下图:
插件管理位置
在可选插件中选择Go Plugin进行安装
go plugin
安装之后可以在如下图所示的位置找到go plugin的使用的地方
1
在这里插入图片描述
之后就可以安装golang,可以选择自动安装,但是由于源的问题很大可能性会安装失败,一次在这里我选择了手动安装之后指定路径的方式
3
进入docker所在的pod中下载golang在这个过程中会遇到个问题jenkins使用的是debian系统在这个系统中软件的时候需要root权限,但是在起pod的受我们并没有设置root的密码,造成安装不上golang。这个问题耽搁了1.2个小时的时间来照debian系统初始的root密码是多少。后来突然发现docker还有以root登陆容器的方法,问题得到解决

docker exec -ti -u root 4650e8d1bcca bash
curl -O https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz
tar xvf go1.12.5.linux-amd64.tar.gz

以上三条命令可以得到一个go文件夹,这就是我们需要的内容
之后把这个go文件夹考到了/var/jenkins_home/go/目录下,其实放哪都行,我觉得。只要后面指定路径能够找到就可以。当然这个过程需要设置go的环境变量,参考:https://www.cnblogs.com/kex1n/p/7716905.html
4
到这里又遇到了个拦路的,设置完之后,创建了个自由风格的构建,但是在执行的时候提示找不到go,这就怪了,在pod中已经设好了环境变量为何会找不到?
在这里插入图片描述
后来经过查资料找到了原因,jenkins没有加载/etc/profile导致,需要在jenkins调用shell脚本的最前面加一行脚本,#!/bin/bash -ilex,可以通过-i参数和-l参数让 bash为login shell and interactive shell,就可以读取/etc/profile和~/.bash_profile等文件,复制https://www.cnblogs.com/silvi/p/6938356.html原话,至此jenkins就可以正常的编译go代码了。

docker接入

接下来将go代码编译后生成的包打成镜像,这里使用了docker
在jenkins中安装docker-build-step插件如下图所示
1
在这里插入图片描述
在configure system中找到Docker Builder在里面写入安装有docker的机器的ip和端口号,这个端口号是需要在安装docker的机器上进行设置的,具体的设置方法参照:https://www.cnblogs.com/soar1688/p/6833540.html
之后在生成的job的构建模块就可以选择需要docker所做的任务
3
至此,再次运行构建,就会发现在docker所在的机器上生成了所想要的镜像,但在这个过程中,一定记住构建的源代码中需要有dockerfile文件,可以把源代码和dockerfile文件都放在一起放在一个文件夹当中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值