假设我有命令:rails服务器和bundleexecsomething:default我知道我的Dockerfile只能有1个CMD行,所以可以这样做:CMD["sh","-c","railserver&&bundleexecsomething:default"]因为它只是这两个命令,我不想复制一个script.sh然后使用它(希望有一个简单的1行方式)。在一个容器中运行2个服务时,我应该注意什么最佳做法? 最佳答案 最佳做法是在每个容器中运行一个服务,但这并不总是可行的。我运行CMD["sh","-c","/usr/sbin/cr
假设我有命令:rails服务器和bundleexecsomething:default我知道我的Dockerfile只能有1个CMD行,所以可以这样做:CMD["sh","-c","railserver&&bundleexecsomething:default"]因为它只是这两个命令,我不想复制一个script.sh然后使用它(希望有一个简单的1行方式)。在一个容器中运行2个服务时,我应该注意什么最佳做法? 最佳答案 最佳做法是在每个容器中运行一个服务,但这并不总是可行的。我运行CMD["sh","-c","/usr/sbin/cr
有没有快速注释掉Dockerfile中的多行的方法?我知道我可以在每一行的开头添加#。但是如果有很多行,这工作量就太大了。在某些语言中,有诸如/*...*/之类的多行注释,这使得注释掉文件的大部分内容非常快。 最佳答案 截至今天,没有。根据Dockerfilereference文档:Dockertreatslinesthatbeginwith#asacomment,unlessthelineisavalidparserdirective.A#markeranywhereelseinalineistreatedasanargument
有没有快速注释掉Dockerfile中的多行的方法?我知道我可以在每一行的开头添加#。但是如果有很多行,这工作量就太大了。在某些语言中,有诸如/*...*/之类的多行注释,这使得注释掉文件的大部分内容非常快。 最佳答案 截至今天,没有。根据Dockerfilereference文档:Dockertreatslinesthatbeginwith#asacomment,unlessthelineisavalidparserdirective.A#markeranywhereelseinalineistreatedasanargument
请考虑以下Dockerfile:FROMphusion/baseimageVOLUME["/data"]RUNtouch/data/HELLORUNls-ls/data问题:“/data”目录不包含“HELLO”文件。此外,任何其他写入卷目录的尝试(通过echo、mv、cp、...)均不成功-目录始终为空。没有显示错误消息。我在文档或stackoverflow上找不到关于此问题的任何内容。这是众所周知的还是新事物?docker版本返回:Clientversion:1.2.0ClientAPIversion:1.14Goversion(client):go1.3.1Gitcommit(c
请考虑以下Dockerfile:FROMphusion/baseimageVOLUME["/data"]RUNtouch/data/HELLORUNls-ls/data问题:“/data”目录不包含“HELLO”文件。此外,任何其他写入卷目录的尝试(通过echo、mv、cp、...)均不成功-目录始终为空。没有显示错误消息。我在文档或stackoverflow上找不到关于此问题的任何内容。这是众所周知的还是新事物?docker版本返回:Clientversion:1.2.0ClientAPIversion:1.14Goversion(client):go1.3.1Gitcommit(c
我正在尝试创建一个Dockerfile,将当前目录中的所有文件复制到特定文件夹。目前我有COPY./this/folder我无法检查此命令的结果,因为我的容器在我运行后几乎立即关闭。有没有更好的方法来测试命令是否有效? 最佳答案 你可以启动一个容器并检查。$dockerrun-ti--rmsh$ls-l/this/folder如果你的docker镜像有ENTRYPOINT设置,那么运行下面的命令:$dockerrun-ti--rm--entrypointsh$ls-l/this/folder
我正在尝试创建一个Dockerfile,将当前目录中的所有文件复制到特定文件夹。目前我有COPY./this/folder我无法检查此命令的结果,因为我的容器在我运行后几乎立即关闭。有没有更好的方法来测试命令是否有效? 最佳答案 你可以启动一个容器并检查。$dockerrun-ti--rmsh$ls-l/this/folder如果你的docker镜像有ENTRYPOINT设置,那么运行下面的命令:$dockerrun-ti--rm--entrypointsh$ls-l/this/folder
我的容器应该共享同一个源代码文件夹。但它们应该从不同的Dockerfile构建。是否可以使用docker-compose构建它们并一次从不同的Dockerfile构建?我希望有像这样的语法build:.-fbuild:.-fabc:build:.-fenvironment:-PROJECT=abccommand:rubyabc/abc.rbvolumes:-./:/working_direcotryports:-5904:5904cde:build:.-fenvironment:-PROJECT=cdecommand:rubycde/cde.rbvolumes:-./:/working
我的容器应该共享同一个源代码文件夹。但它们应该从不同的Dockerfile构建。是否可以使用docker-compose构建它们并一次从不同的Dockerfile构建?我希望有像这样的语法build:.-fbuild:.-fabc:build:.-fenvironment:-PROJECT=abccommand:rubyabc/abc.rbvolumes:-./:/working_direcotryports:-5904:5904cde:build:.-fenvironment:-PROJECT=cdecommand:rubycde/cde.rbvolumes:-./:/working