【发布时间】:2019-09-03 16:02:17
【问题描述】:
我有一个简单的 docker 文件
FROM ubuntu:18.04
COPY . /usr/src/app/
COPY docker_files/.bash_aliases /root/
$ docker build -t dock .
Sending build context to Docker daemon 146.9kB
Step 1/3 : FROM ubuntu:18.04
---> 94e814e2efa8
Step 2/3 : COPY . /usr/src/app/
---> bf79eb6c42c1
Step 3/3 : COPY docker_files/.bash_aliases /root/
---> aedc97d5ee8b
Successfully built aedc97d5ee8b
Successfully tagged dock:latest
我可以使用它:
$ docker run -it dock
bash: git: command not found
root@6a6bec871690:/# ls usr/src/app/
Dockerfile Gemfile Gemfile.lock README.md docker_files go ...
root@6a6bec871690:/#
如您所见,我的文件已被复制并为 root 创建了别名。但是没有找到 git(因此出现错误消息)并且没有安装。
如果我在下面的尝试失败了,我该如何安装它?
root@753b573271d5:/# git
bash: git: command not found
root@753b573271d5:/# apt-get install git
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package git
root@753b573271d5:/# sudo apt-get install git
bash: sudo: command not found
【问题讨论】:
-
我很好奇你为什么要在你的镜像中使用 Git。通常版本控制会发生在容器之外,我不明白为什么
docker run会在这里调用git。你是想在你的 bash 提示符中显示 Git 信息吗? -
好问题。我在玩。试图找到一个开发环境的正确匹配,其中 docker 镜像是我工作的环境
-
很公平,迈克尔。 FWIW 我发现当每个容器只做一件事情时,Docker 效果最好。而不是例如具有版本控制的单个 VM、IDE、Web 服务器、数据库服务器以及您使用的任何语言可能有一个 Docker 容器托管应用程序代码,另一个用于您的数据库,并使用编辑器或 IDE,版本控制、网络浏览器等。我认为这也更符合项目的目标。无论你最终得到什么,我希望你能找到满意的东西。
标签: git docker ubuntu containers dockerfile