此刻我正在使用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中重新执行它们吗?
答案 0 :(得分:6)
您需要在安装前更新软件包缓存,并且不要错过-y
的{{1}}。
apt-get install
答案 1 :(得分: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
答案 2 :(得分:0)
这是将Maven安装到docker的最简单方法:
使用root特权连接到Docker
sudo docker exec -u root -t -i [container-id] bash
更新并安装Maven
apt-get更新和apt-get安装
就是这样。
答案 3 :(得分:0)
为我准备的工作文件
function savedata(SOME_ID,tournumber, tname, arname, ename, duration, guide, tdate, artype, entype)
{
var tourRef = firebase.database().ref('tours/Available_tours/'+SOME_ID)
.child(parseInt(tournumber))
.set({dayAR:arname, dayEN:ename, duration:duration,
guide:guide, tourDate:tdate, tourName:tname, typeAR:artype, typeEN:entype});
}