Jenkins的安装使用

本文介绍如何通过Docker部署Jenkins,并实现与GitLab的集成,包括配置Docker参数、解决连接问题及部署应用到Nexus仓库的方法。

安装

Docker方式

docker run -d --restart=always \
    --hostname jenkins \
    -u 0 \
    -p 86:8080  \
    --name jenkins \
    -v /opt/shell:/opt/shell \
    -v /usr/share/java:/usr/local/java \
    -v /usr/local/tomcat:/usr/local/tomcat \
    -v /data/android_env/android-sdk-linux:/data/android_env/android-sdk-linux \
    -v /data/jenkins/home:/var/jenkins_home \
    -v /data/jenkins/jobs:/var/jenkins_home/jobs \
    -v /temp/jenkins/logs:/var/jenkins_home/logs \
    -v /temp/jenkins/workspace:/var/jenkins_home/workspace \
    -v /temp/jenkins/tools:/var/jenkins_home/tools \
    -v /temp/jenkins/.gradle:/var/jenkins_home/.gradle \
    -v /temp/jenkins/.sonar:/var/jenkins_home/.sonar \
    -v /temp/jenkins/.m2:/var/jenkins_home/.m2 \
    -v /temp/jenkins/.android:/var/jenkins_home/.android \
    -v /temp/jenkins/.jenkins:/var/jenkins_home/.jenkins \
    -v /temp/jenkins/.cache:/var/jenkins_home/.cache \
    -v /temp/jenkins/.groovy:/var/jenkins_home/.groovy \
    -v /temp/jenkins/.docker:/var/jenkins_home/.docker \
    jenkins/jenkins

-u 0: # 防止文件访问权限异常

通过运行

docker logs -f jenkins 

找到password后面的字符串获得密码

使用

jenkins中docker的配置(docker-build-step插件方式)

由于jenkins运行在docker,默认没有docker服务,只能借助其他slave机器上的docker服务,比如jenkins运行的主机(host)上,在docker运行的slave主机上按《Docker 安装、使用》配置tcp:6732端口,
jenkins安装docker-build-step插件,安装完后在jenkins–》系统管理–》系统配置–》“Docker Builder”区,设置Docker URL为tcp://slave.domain.or.ip:6732。测试通过即可。

在jenkins的非pipeline的job中,“增加构建步骤”选择“Execute Docker Command”,即可选择各种docker命令。

jenkin把修改的代码push到原始gitlab

安装git plugin,配置如下,保证两个图中的1一直
这里写图片描述

+refs/heads/develop:refs/remotes/origin/develop

这里写图片描述

jenkin运行脚本中安全使用用户名密码

参考Injecting Secrets into Jenkins Build Jobs
安装Credentials Binding Plugin

在job的setting里的构建环境里
这里写图片描述
然后在Execute Command里命令行里直接使用 G I T S E C R I T 即 可 , 如 g i t c l o n e h t t p : / / GIT_SECRIT即可,如 git clone http:// GITSECRITgitclonehttp://GIT_SECRIT:192.168.0.12/repo.git

jenkins中部署jar到nexus仓库(插件方式)

  • 配置maven
    修改$JENKINS_HOME/tools/hudson.tasks.Maven_MavenInstallation/maven_3.3.9/conf/settings.xml,此处maven_3.3.9为Jenkins–》系统管理–》Global Tool Configuration–》Maven Install中的版本
  <servers>
    <server>
      <id>nexusRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>

    <!-- Another sample, using keys to authenticate.
    <server>
      <id>siteServer</id>
      <privateKey>/path/to/private/key</privateKey>
      <passphrase>optional; leave empty if not used.</passphrase>
    </server>
    -->
  </servers> 
  • 配置job
    保证ID和前面settings.xml的server id一致。

这里写图片描述

待解决问题

  1. 如何像命令行一样,在docker的参数中使用脚本呢?
  2. 如何使shell command中的git add时gitignore生效

参考:
3. 自动push代码

错误解决:
[Docker] ERROR: Failed to exec start:Connect to xxx.xxx.xxx.xxx:6732 [/xxx.xxx.xxx.xxx] failed: Connection refused (Connection refused)
[Docker] ERROR: failed to push image docker.xxx.xxx:9082/cloud/service/user:prod

vim /etc/default/docker
DOCKER_OPTS="-H unix:///var/run/docker.sock -H tcp://0.0.0.0:6732"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值