我有一个dockerfile似乎可以成功安装各种程序。
例如,我在这里安装了sfdx-cli:
RUN wget -O - https://developer.salesforce.com/media/salesforce-cli/sfdx-linux-amd64.tar.xz | tar Jxv && sfdx/install && rm -rf sfdx
我知道它很成功,因为后续行会导致它自行更新。
这是另一个例子,我安装了apt-transport-https:
RUN apt-get install -y apt-transport-https
我知道这很有效,因为下一行安装了heroku,它依赖于apt-transport-https:
RUN apt-get update && apt-get install -y heroku
但是,当我根据此图像运行容器时,sfdx-cli和apt-transport-https都不存在。我使用“find /”命令进行了搜索,无法在任何地方找到它们,更不用说在预期的位置了。
一般来说,集装箱运行良好,许多程序存在并且正在运行。例如,“heroku”命令工作正常。
我显然遗漏了一些关于docker工作方式的基本知识,但我在网上找不到任何关于此的内容。
这是当前的Dockerfile:https://gist.github.com/alexed1/ad4917f53bed34318e1aa2801a82e911
这是我的构建命令:
docker build . -t alexed1:dev5
这是我的跑步命令:
docker run -it -v /Users/aedelstein/Dropbox/dev:/home/alexed/dev \
-p 8000:8000 -p 5000:5000 -p 80:80 -p 1717:1717 alexed1/dev5
答案 0 :(得分:1)
图片名称由两个组件组成,repository
和:tag
。如果未指定:tag
,则默认为:latest
正在运行的容器正在使用图片alexed1/dev5
。这相当于标记alexed1/dev5:latest
正在构建的图片不同,并且正在标记alexed1:dev5
要运行构建的图像,请使用
docker run -it -v /Users/aedelstein/Dropbox/dev:/home/alexed/dev \
-p 8000:8000 -p 5000:5000 -p 80:80 -p 1717:1717 alexed1:dev5