我有一个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
下面是我的build命令:
docker build . -t alexed1:dev5
下面是我的run命令:
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
发布于 2017-12-09 22:41:14
镜像名称由两个组件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
https://stackoverflow.com/questions/47731210
复制