Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker容器中的Jenkins(运行Docker管道)_Docker_Jenkins - Fatal编程技术网

Docker容器中的Jenkins(运行Docker管道)

Docker容器中的Jenkins(运行Docker管道),docker,jenkins,Docker,Jenkins,我想在Docker容器中运行Jenkins。一切都好。我可以这样运行:docker run-d--name jenkins-t-I-p49001:8080 jenkins我还可以添加持久存储。当我创建一个管道时,问题出现了,它必须执行docker命令(build和push)。第一个错误是系统上没有安装docker。是的,我期待着。然后我开始搜索并发现如何在容器中运行docker(传递2个持久卷):docker run-v/var/run/docker.sock:/var/run/docker.s

我想在Docker容器中运行Jenkins。一切都好。我可以这样运行:
docker run-d--name jenkins-t-I-p49001:8080 jenkins
我还可以添加持久存储。当我创建一个管道时,问题出现了,它必须执行
docker
命令(
build
push
)。第一个错误是系统上没有安装docker。是的,我期待着。然后我开始搜索并发现如何在容器中运行docker(传递2个持久卷):
docker run-v/var/run/docker.sock:/var/run/docker.sock-v$(哪个docker):/usr/bin/docker-p 49001:8080 jenkins

这会运行,但有一些例外。容器中有
docker
命令,但当我尝试运行它时,它会引发异常:
docker:加载共享库时出错:libltdl.so.7:无法打开共享对象文件:没有此类文件或目录

我如何解决这个问题?在Docker中安装Jenkins并在其中运行Docker的正确方法是什么?我认为有两种方法:

  • 我正在做的那个-使用插座
  • 我可以公开允许连接和运行命令的docker api

  • 事实上,让詹金斯在Docker工作值得吗?我试图从apt get手动安装缺少的lib,但我知道这不是正确的方法。

    您必须安装
    libltdl dev
    ,才能使一切正常工作。创建一个如下所示的
    Dockerfile

    FROM jenkins:latest
    
    USER root
    RUN apt-get update \
          && apt-get upgrade -y \
          && apt-get install -y sudo libltdl-dev \
          && rm -rf /var/lib/apt/lists/*
    RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
    
    USER jenkins
    # Here you can install some Jenkins plugins if you want
    

    这里是来自@Israel Perales docker图像的简单更新,上面的bcz不再工作

       FROM jenkins/jenkins:lts
    
    
        USER root
        RUN apt-get update \
              && apt-get upgrade -y \
              && apt-get install -y sudo libltdl-dev libnss3 \
              && rm -rf /var/lib/apt/lists/*
        RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
    
        USER jenkins
    
    构建docker映像并按如下方式运行:

    $ docker build -t docIndoc .
    
    $ docker run --name jenkins -d -p 8080:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):$(which docker) docIndoc
    
    $ docker exec -it jenkins /bin/bash
    

    会有帮助吗?我创建了一个简单的解决方案图像,感谢image@kirptrm-rf/var/lib/apt/lists/*用于什么?