繁体   English   中英

詹金斯的Dockerfile

[英]Dockerfile for Jenkins

我绝对不是Docker和Jenkins的新手,我想尝试问你,也许您可​​以帮助我。

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

所以首先我在github( https://github.com/jenkinsci/docker/blob/master/Dockerfile )上找到了公共dockerfile,但是它包含很多参数,我不确定是否一定要使用整个Dockerfile。

首先,您能给我一个建议,如何修改dockerfile吗? 还是建议使用原始的Dockerfile(URL在上)?

谢谢大家的建议,祝大家有美好的一天。

不要修改Dockerfile 可言 创建一个新的 Dockerfile,其开头为:

FROM jenkins

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

docs.docker.com上有一些非常不错的文档,特别是这篇 文章 ,讨论了编写Dockerfile的最佳实践。

这些 Docker images任何一个用作Dockerfile基础映像并创建。

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

Docker中心上的“官方”詹金斯映像已经移动了几次。 它以前是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存储库中获得了本示例的其余部分: https : //github.com/bmitch3020/jenkins-docker

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM