zoukankan      html  css  js  c++  java
  • docker部署Jenkins,以及在Jenkins中使用宿主机的docker/docker-compose命令

    使用最新的官方镜像jenkins/jenkins

    第一次使用的docker部署jenkins的时候,出现了两个问题:

    1、因为用户权限问题挂载/home/jenkins/data到/var/jenkins_home挂载不了。后面通过修改data目录的所属用户可以解决,即在容器下查询用户id(1000),然后把data改成同样的用户id

    2、即便挂载docker命名和docker.sock,也修改了相应的权限,仍存在libltdl7没有权限读取。当然好像也不影响使用,只是在容器里面执行docker info的时候,会报无法读取libltdl.so.7的信息。

    docker: error while loading shared libraries: /usr/lib/x86_64-linux-gnu/libltdl.so.7: cannot read file data: Error 21

    于是查找资料在jenkins/jenkins基础上再建一个Jenkins镜像。

    编辑Dockerfile

    FROM jenkins/jenkins
    
    USER root
    #清除了基础镜像设置的源,切换成阿里云的jessie源
    RUN echo '' > /etc/apt/sources.list.d/jessie-backports.list 
      && echo "deb http://mirrors.aliyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list 
      && echo "deb http://mirrors.aliyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list 
      && echo "deb http://mirrors.aliyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list
    #更新源并安装缺少的包
    
    RUN apt-get update && apt-get install -y libltdl7
    
    ARG dockerGid=999
    
    RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group USER jenkins
    
    # 安装 docker-compose  --- 挂载宿主机上的就可以了
    # RUN curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    # RUN chmod +x /usr/local/bin/docker-compose

    开启容器,挂载maven

    #!/bin/bash
    docker run --name jenkins 
    -p 8008:8080 
    -p 50000:50000 
    --add-host='centos6.5:192.168.0.8'    # 增加额外host,这个是gitlab的ip
    -v /opt/maven3.5.2:/var/maven3.5.2 
    -v /opt/maven_jar:/var/maven_jar 
    -v /home/jenkins/settings.xml:/var/jenkins_home/.m2/settings.xml 
    -v /etc/localtime:/etc/localtime:ro 
    -v /home/jenkins/data:/var/jenkins_home 
    -v /var/run/docker.sock:/var/run/docker.sock 
    -v $(which docker):/usr/bin/docker 
    -v $(which docker-compose):/usr/local/bin/docker-compose 
    -d com.jay.myjenkins:latest

    settings.xml以及maven需要在jenkins配置里配置一下。

  • 相关阅读:
    Jocke的IOT之路--raspberrypi更换国内镜像
    利用PostMan 模拟上传/下载文件
    Java中的Lambda表达式
    设计模式之Jdk动态代理
    设计模式之代理模式
    Java内存模型及Java关键字 volatile的作用和使用说明
    JVM GC-----4、finalize()方法
    JVM GC-----3、垃圾对象的标记思路(二)
    JVM GC-----2、垃圾对象的标记思路(一)
    JVM GC-----1、垃圾回收算法
  • 原文地址:https://www.cnblogs.com/jay763190097/p/8305911.html
Copyright © 2011-2022 走看看