在Jenkins Docker镜像中安装bundler

时间:2016-05-17 18:31:50

标签: ruby bash jenkins docker

是否可以在docker镜像中安装Ruby,特别是Jenkins?

我可以从文档中看到您可以附加到容器或使用docker exec -i -t 4e2bf4128e3e bash。这会将我作为jenkins@4e2bf4128e3e登录。

但如果我尝试安装任何东西

apt-get install ruby 2.0.0 # Yes will install rvm, this is just an example

我得到了

E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

当我尝试

sudo apt-get install ruby 2.0.0

然后我得到sudo command not found

2 个答案:

答案 0 :(得分:2)

你遇到的问题是,正如你可以看到的here,jenkins docker图像作为jenkins用户执行命令,禁止使用apt。

https://hub.docker.com/_/jenkins/上你有一些文档,即“安装更多工具”部分,建议你这样做:

FROM jenkins
# if we want to install via apt
USER root
RUN apt-get update && apt-get install -y ruby make more-thing-here
USER jenkins # drop back to the regular jenkins user - good practice

答案 1 :(得分:1)

您可以创建自己的图像,将这两个图像分层

Dockerfile

FROM jenkins
FROM ruby
...

现在你有一个自己的docker容器,它同时包含ruby和jenkins。