【问题标题】:extend jenkins image to install maven扩展 jenkins 映像以安装 maven
【发布时间】:2018-02-13 14:47:14
【问题描述】:

我目前正在使用jenkins/jenkins:lts 图像。它运行良好,并且可以完成我希望做的所有事情。我希望它在构建步骤中运行 Maven 目标。问题是jenkins容器环境中没有安装maven。

所以我想扩展上述图片以运行apt-get install maven

我的解决方案:

FROM "jenkins/jenkins:lts
USER root
RUN /bin/bash -c "apt-get install maven"

这就够了吗?我假设 jenkins 映像的所有 RUN 和 ENTRYPOINT 步骤都将自行运行,我不需要在我的 Dockerfile 中重新执行它们,对吧?

【问题讨论】:

    标签: maven docker jenkins dockerfile docker-container


    【解决方案1】:

    安装前需要更新包缓存,不要错过-yapt-get install

    FROM jenkins/jenkins:lts
    RUN apt-get update && apt-get install -y maven
    

    【讨论】:

    • 成功了!使用我的新图像执行docker-compose up 会产生ERROR: pull access denied for jenkins/jenkins-maven, repository does not exist or may require 'docker login' - 我错过了什么吗?
    • 请告诉我docker build jenkins-maven 图像的命令参数
    • docker build -t jenkins-maven .
    • 可能在docker-compose.yml 图像中的名称为jenkins/jenkins-maven。但是你建立了图像jenkins-maven。名称必须相同。
    • 我在 docker-compose 中运行了命令bash -c "apt-get update && install -y maven",得到了错误E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)。我也尝试过使用 sudo 但bash: sudo: command not found。有什么想法可以运行吗?
    【解决方案2】:

    根据文档,这将在您的 dockerfile 中

    FROM jenkins/jenkins:lts
    # if we want to install via apt
    USER root
    RUN apt-get update && apt-get install -y maven
    # drop back to the regular jenkins user - good practice
    USER jenkins
    

    假设您的 docker 文件位于当前目录中,这就是您将如何构建映像并安装在本地 docker repo 中的方式

    docker build -t jenkins-maven .
    

    更多信息

    https://github.com/jenkinsci/docker

    以这种方式安装 maven 后,mvn 版本可能会比您需要的版本旧。当我运行它时,它是 Apache Maven 3.3.9

    【讨论】:

    • 你怎么知道 USER jenkins 是正确的?这是在基础映像中定义的某个地方吗?
    • @dokaspar,在基础镜像中定义。
    【解决方案3】:

    这是将 maven 安装到 docker 中的最简单方法:

    1. 使用 root 权限连接到 docker

      sudo docker exec -u root -t -i [container-id] bash

    2. 更新和安装 maven

      apt-get 更新和 apt-get 安装

    就是这样。

    【讨论】:

    • 这并不能真正回答手头的问题。可以从包含所需工具的 dockerfile 创建图像。
    【解决方案4】:

    为我工作的文件

    FROM jenkins/jenkins:lts
    USER root
    RUN apt-get update && apt-get install -y maven
    

    【讨论】:

      猜你喜欢
      • 2019-11-18
      • 1970-01-01
      • 2018-08-02
      • 2023-01-14
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 2012-10-15
      相关资源
      最近更新 更多