我的最终目标是在我的本地计算机上运行不同版本的PHP进行测试。
我相信Docker是实现这一目标的最佳方式。
我已经能够通过本教程获得运行Apache和PHP的容器:https://github.com/tutumcloud/apache-php
但问题是我无法安装卷,因此我可以编辑本地文件并在docker容器上查看它们。
以下是终端在与docker文件相同的目录中运行的步骤:
var COUNTRY_LOGIC = {
1 () { return "France" },
2 () { return "Germany" },
3 () { return "whatever"}
}
function doLogic(countryId) {
// do any possible common logic here
var countryLogicFn = COUNTRY_LOGIC[countryId]
if (typeof countryLogicFn === "function") {
return countryLogicFn()
}
return "do some other thing"
}
console.log(doLogic(1))
console.log(doLogic(3))
console.log(doLogic(9999))
docker build -t tutum/apache-php .
我得到的错误是:
docker:来自守护程序的错误响应:oci运行时错误:container_linux.go:247:启动容器进程导致" exec:\" -v \":$ PATH&中找不到可执行文件#34;
我在OSX上 - El Captain,刚刚安装了最新版本的Docker和Docker工具。
答案 0 :(得分:0)
docker run
命令的基本格式为:
docker run [<options>] <image> [<command>]
在这种情况下,您的图像为tutum/apache-php
,并且正在解析运行命令,如下所示:
docker run -d -p 8080:80 tutum/apache-php -v /Users/user-name-here/apache-php/sample:/app/
docker run
options: -d -p 8080:80
image: tutum/apache-php
command: -v /Users/user-name-here/apache-php/sample:/app/
这是您的错误来源。
exec:&#34; -v&#34;:$ PATH中找不到可执行文件
由于命令以-v
开头,因此它将尝试查找并执行该命令。当然,它不存在,所以你会得到这个错误。
修复只是将-v
选项及其参数移动到适当的位置。
docker run -d -p 8080:80 -v /Users/user-name-here/apache-php/sample:/app/ tutum/apache-php