Docker run -u root -d -p 8024:8080 -p 50000:50000
-v /data/jenkinsData:/var/jenkins_home
-v /var/run/docker.sock:/var/run/docker.sock
-v /etc/localtime:/etc/localtime
--name jenkins
jenkinsci/blueocean
# 这会将工作区存储在/ var / jenkins_home中。所有Jenkins数据都存在于那里 - 包括插件和配置。您可能希望将其设为持久卷(推荐):
docker run -d -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins
# 这会将jenkins数据存储`/your/home`在主机上。确保`/your/home`容器中的jenkins用户可以访问它(jenkins user-uid 1000)或使用`-u some_other_user`参数`docker run`。
# 您还可以使用卷容器:
docker run -d --name myjenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home jenkins
报错:
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000
sudo chown -R 1000:1000 /home/docker/jenkins
问题:安装完jenkins后发现时区不对
解决:打开jenkins的【系统管理】---> 【脚本命令行】,在命令框中输入一下命令【时间时区设为 亚洲上海】:
System.setProperty('org.Apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
安装 Multijob 插件
安装 Role-Based Strategy 插件
每次登录远程主机都需要输入密码是很不方便的,如果想要省去这一步骤,可以利用密钥对进行连接,还可以提高安全性。
docker exec -it <容器ID> bash
ssh-keygen -t rsa
然后根据提示一步步的按enter键即可(其中有一个提示是要求设置私钥口令passphrase,不设置则为空,这里看心情吧,如果不放心私钥的安全可以设置一下),执行结束以后会在 /home/当前用户 目录下生成一个 .ssh 文件夹,其中包含私钥文件 id_rsa 和公钥文件 id_rsa.pub。
使用ssh-copy-id命令将公钥复制到远程主机。ssh-copy-id会将公钥写到远程主机的 ~/ .ssh/authorized_key 文件中
ssh-copy-id root@192.168.0.1
经过以上两个步骤,以后再登录这个远程主机就不用再输入密码了。
选择分支构建
使用参数化构建的时候,选择分支的时候一运行却解析不出来,搜了很久都没搜到,结果我瞎点结果误打误撞成功了,是因为最下面的Pipeline里的 Lightweight checkout(轻量级检出) 一定不要勾选 ,因为勾选了之后它不会解析参数化构建的参数