詹金斯的Dockerfile
我是Docker和Jenkins的新手,我想问你,也许你能帮我 我想创建一个Dockerfile,其中包含所有必要的Jenkins部分,以便能够创建一个用于签出github的自动化任务 首先,我在github()上找到了公共dockerfile,但它包含很多参数,我不确定是否一定要使用整个dockerfile 首先,你能给我一个建议吗,如何修改dockerfile?或者建议使用原始Dockerfile(URL位于上方)詹金斯的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。创建一个以以下
谢谢你们的建议,祝你们今天愉快。不要修改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中,对吗?但是现在,我需要研究一些文件,詹金斯的全貌。在群集模式下。