【问题标题】:Dockerfile for Jenkins詹金斯的 Dockerfile
【发布时间】:2018-02-19 16:40:27
【问题描述】:

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

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

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

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

感谢您的任何建议,伙计们,祝您有美好的一天。

【问题讨论】:

标签: docker github jenkins docker-compose dockerfile


【解决方案1】:

不要修改 Dockerfile。创建一个 new Dockerfile,其开头为:

FROM jenkins

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

docs.docker.com 上有一些非常好的文档,特别是 this one 讨论了编写 Dockerfile 的最佳实践。

【讨论】:

  • 非常感谢您的帮助。所以如果我需要为Jenkins使用一些插件,那么应该直接在jenkins环境中配置,而不是在dockerfile中,对吧?但是现在,我需要研究一些文件。
【解决方案2】:

使用任何these Docker images 作为Dockerfile 的基础映像并创建。

【讨论】:

    【解决方案3】:

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

    Docker hub 上的“官方”jenkins 镜像已经移动了几次。以前是 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-04
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多