是否可以在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
。
答案 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)
您可以创建自己的图像,将这两个图像分层
FROM jenkins
FROM ruby
...
现在你有一个自己的docker容器,它同时包含ruby和jenkins。