扩展詹金斯图像以安装Maven

xet*_*a11 5 maven jenkins docker dockerfile docker-container

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

所以我想扩展提到的图像来运行一个apt-get install maven

我的解决方案:

FROM "jenkins/jenkins:lts
USER root
RUN /bin/bash -c "apt-get install maven"
Run Code Online (Sandbox Code Playgroud)

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

Buk*_*gey 6

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

FROM jenkins/jenkins:lts
RUN apt-get update && apt-get install -y maven
Run Code Online (Sandbox Code Playgroud)

  • 我在docker-compose中运行了命令`bash -c“ apt-get update && install -y maven”,我得到了错误`E:缺少目录目录/ var / lib / apt / lists / partial。-获取(13:权限被拒绝)。我也尝试了sudo,但是`bash:sudo:命令未找到`。有什么想法我该如何运行? (2认同)

pit*_*408 6

根据文档,这将在您的 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
Run Code Online (Sandbox Code Playgroud)

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

docker build -t jenkins-maven .
Run Code Online (Sandbox Code Playgroud)

想要查询更多的信息

https://github.com/jenkinsci/docker

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


小智 5

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

  1. 使用 root 权限连接到 docker

    sudo docker exec -u root -t -i [容器 ID] bash

  2. 更新并安装maven

    apt-get 更新 & apt-get 安装

就是这样。