Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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
詹金斯的Dockerfile_Docker_Github_Jenkins_Docker Compose_Dockerfile - Fatal编程技术网

詹金斯的Dockerfile

詹金斯的Dockerfile,docker,github,jenkins,docker-compose,dockerfile,Docker,Github,Jenkins,Docker Compose,Dockerfile,我是Docker和Jenkins的新手,我想问你,也许你能帮我 我想创建一个Dockerfile,其中包含所有必要的Jenkins部分,以便能够创建一个用于签出github的自动化任务 首先,我在github()上找到了公共dockerfile,但它包含很多参数,我不确定是否一定要使用整个dockerfile 首先,你能给我一个建议吗,如何修改dockerfile?或者建议使用原始Dockerfile(URL位于上方) 谢谢你们的建议,祝你们今天愉快。不要修改Dockerfile。创建一个以以下

我是Docker和Jenkins的新手,我想问你,也许你能帮我

我想创建一个Dockerfile,其中包含所有必要的Jenkins部分,以便能够创建一个用于签出github的自动化任务

首先,我在github()上找到了公共dockerfile,但它包含很多参数,我不确定是否一定要使用整个dockerfile

首先,你能给我一个建议吗,如何修改dockerfile?或者建议使用原始Dockerfile(URL位于上方)


谢谢你们的建议,祝你们今天愉快。

不要修改Dockerfile。创建一个以以下内容开头的新Dockerfile:

FROM jenkins
然后将您的更改放在下面。这将包括Jenkins官方图像中的所有内容,然后添加您的定制


上有一些非常好的文档,特别是关于编写Docker文件的最佳实践。

使用任何
Docker图像作为
Docker文件的基础图像,然后创建。

标准过程是扩展上游图像。从上游项目中提取Dockerfile并直接修改它的唯一需要是,如果您的公司策略要求您从头开始构建所有内容,或者上游对Dockerfile做了一些不正确的事情,您无法通过扩展它来纠正(例如,在Dockerfile中定义卷)。扩展的原因是,通过提取上游图像并重建子图像,您可以轻松获得最新的修补程序,而无需尝试将其更改重新应用到Dockerfile

Docker hub上的“官方”詹金斯形象已经移动了好几次。它以前是jenkinsci/jenkins,后来作为jenkins:latest进入了官方图书馆,现在改为jenkins/jenkins:lts。如何扩展上游映像的示例如下所示:

FROM jenkins/jenkins:lts

ARG GOSU_VERSION=1.10

# switch to root, let the entrypoint drop back to jenkins
USER root

# install debian packages, gosu, and docker
RUN apt-get update \
 && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
     vim \
     wget \
 && dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \
 && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \
 && chmod +x /usr/local/bin/gosu \
 && gosu nobody true \
 && curl -sSL https://get.docker.com/ | sh \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/*

# entrypoint is used to update docker gid and revert back to jenkins user
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

在我的github repo中有这个示例的其余部分:

非常感谢您的帮助。所以,如果我需要为Jenkins使用一些插件,那么应该直接在Jenkins环境中配置,而不是在dockerfile中,对吗?但是现在,我需要研究一些文件,詹金斯的全貌。在群集模式下。