繁体   English   中英

在 docker 作曲家中执行 shell 命令给我错误

[英]executing shell command in docker composer gives me error

我正在尝试在 docker-compose.yml 中执行 shell 命令。 代码是:

    command: bash -c mkdir /opt/wa/usr/install_templates

当我做:

    sudo docker-compose up  serviceA

它给了我:

    serviceA     | mkdir: missing operand

当您使用bash -c时,它会运行-c标志之后的第一个字符串。 有关更多信息,请参阅此 SO 答案 Docker is reading your command bash -c mkdir /path/ and your bash command is just running mkdir in a bash subshell, causing that error.

您不需要将bash -c放在 docker-compose 文件中的命令之前。 Docker 引擎将为您处理在 shell 中运行它,您只需编写要运行的命令即可。 我建议用这个替换你的命令:

command: mkdir /opt/wa/usr/install_templates

或者,如果您想强制命令在 bash 中运行,您可以尝试将整个命令放入字符串中:

command: bash -c "mkdir /opt/wa/usr/install_templates"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM