zoukankan      html  css  js  c++  java
  • Jenkins + docker ,容器中跑docker服务

    1. 宿主机:安装docker

    2. 启动jenkins服务

    https://jenkins.io/download/ 

    Jenkins官网找自己需要的镜像版本号进行使用。

    docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true -m 1500M -v /data/jenkins_home/:/var/jenkins_home -v /usr/bin/dos2unix:/usr/bin/dos2unix  -v /var/run/.sock:/var/run/docker.sock  -v $(which docker):/usr/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -v /etc/timezone:/etc/timezone jenkins

    3. Jenkins启动配置说明

    -v /data/jenkins_home/:/var/jenkins_home  挂载Jenkins主目录
    
    
    -v /usr/bin/dos2unix:/usr/bin/dos2unix  将宿主机的dos2unix命令挂载给Jenkins容器服务,Jenkins调用的脚本需要该命令
    
    
    -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 将宿主机的docker命令挂载给Jenkins容器服务,Jenkins调用的脚本需要该命令
    
    
    -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -v /etc/timezone:/etc/timezone 容器跟上宿主机的时间,Jenkins的web页面时间也需要跟上宿主机的时间

    没有/etc/timezone文件就自己创建:
    echo 'Asia/Shanghai' > /etc/timezone


     报错:报错原因是 文件夹的归属用户id不是1000!!!

    $ sudo docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
    dde66ab01329        jenkins             "/bin/tini -- /usr/l…"   4 seconds ago       Exited (1) 3 seconds ago                       jenkins$ sudo docker logs -f --tail=100 dde66ab01329
    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?


    为什么文件夹的归属用户Id必须是1000?

    对于初次接触jenkins的我来说,确实挺郁闷的。为什么UID必须是1000?带着疑问我去查看了Docker中央仓库提供的Dockerfile,在这里面看到了如下的代码:

     $ sudo useradd -u 1000 jenkins

    $ sudo passwd jenkins

    $ su - jenkins

    $ mkdir jenkins_home

    $ docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true -m 1500M -v /home/jenkins/jenkins_home/:/var/jenkins_home -v /var/run/.sock:/var/run/docker.sock  -v $(which docker):/usr/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -v /etc/timezondockere:/etc/timezone jenkins
    
    
  • 相关阅读:
    vue动态改变样式
    前端上传到七牛云图片
    vue实现发送验证码60秒
    移动端使用lib-flexible
    作用域插槽
    vue中的keep-alive
    vue优化
    vue动画move的实现
    vue自带的动画效果
    v-model的理解
  • 原文地址:https://www.cnblogs.com/zoujiaojiao/p/11028108.html
Copyright © 2011-2022 走看看