安装/运行jenkins容器

1
2
3
docker pull Jenkins:latest
sudo mkdir /var/jenkins_home
sudo docker run --name myjenkins -p 49001:8080 -v /var/jenkins_home:/var/jenkins_home -d jenkins
docker文件权限错误处理
  • 错误信息:
    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?

  • 错误原因:docker容器的拥有者是jenkins
    通过-v /var/jenkins_home:/var/jenkins_home挂载的/var/jenkins_home文件夹拥有者是root

  • 错误验证:

    1. 查看容器用户

      1
      2
      3
      4
      sudo docker run -ti --rm --entrypoint="/bin/bash" jenkins -c "whoami && id" jenkins
      jenkins
      uid=1000(jenkins) gid=1000(jenkins) groups=1000(jenkins)
    2. 查看容器内/var/jenkins_home目录拥有者

      1
      2
      3
      4
      5
      6
      7
      sudo docker run -ti --rm --entrypoint="/bin/bash" jenkins -c "ls -la /var/jenkins_home"
      total 16
      drwxr-xr-x 2 jenkins jenkins 4096 Sep 28 06:16 .
      drwxr-xr-x 12 root root 159 Sep 14 06:32 ..
      -rw-r--r-- 1 jenkins jenkins 220 May 15 19:45 .bash_logout
      -rw-r--r-- 1 jenkins jenkins 3526 May 15 19:45 .bashrc
      -rw-r--r-- 1 jenkins jenkins 675 May 15 19:45 .profile
  • 错误处理:
    将主机的/var/jenkins_home的拥有者修改为uid 1000

    1
    2
    sudo chown -R 1000 jenkins_home
    docker start jenkins

镜像启动后报错:Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
权限错误处理办法: http://blog.csdn.net/yulei_qq/article/details/53228601

安装后

运行成功后如果是在服务器上,通过服务器ip或域名 + 映射的主机端口号(如:49001)访问会有一个页面

根据页面的指令拷贝/var/jenkins_home/secrets/initialAdminPassword到页面中
Administrator password

由于是第一次使用jenkins所以选择了建议的

系统管理

  1. 安装Publish Over SSH插件
    在可选插件中搜索 Publish Over SSH,直接安装

    安装完毕之后我们需要重启Jenkins

    重启完成之后,我们就需要对插件进行设置了。进入 系统管理>系统设置。首先为了连接到我们的远程服务器,我们需要添加服务器配置。找到你得Publish over SSH插件栏

    2.在docker中密钥对

    • 将密钥粘贴到jenkins的配置中,或者设置密钥的路径
    • 将公钥粘贴到服务器对应下面ssh serve配置的username的authorized_keys文件中
    • 
      如果你用的是docker容器,需要进到容器里面生成密钥和公钥
      在服务器的机器人上生成ssh密钥对
      1
      ssh-keygen -t rsa

构建账号没有root密码:
sudo: no tty present and no askpass program specified

由于帐号并没有开启免密码导致的

假设当前帐号为abc
切换到root下

1 打开sudoers
vi /etc/sudoers
2 添加免密码
abc ALL = NOPASSWD: ALL