docker中的chain sleep命令是如何组成的?

Che*_*rry 4 bash wait docker docker-compose

考虑一个片段:

---
version: '3.4'
services:
  app:
    image: my_image
    command: ["sleep", "60s", "&&", "my_command"]
Run Code Online (Sandbox Code Playgroud)

给我:

sleep: invalid time interval ???my_command??™
Try 'sleep --help' for more information.
Run Code Online (Sandbox Code Playgroud)

怎么了?为什么会这样?

Docker version 19.03.2, build 6a30dfc
Host OS - windows 10
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 10

您可以像这样使用它来运行,sleep 60然后是您的命令:

---
version: '3.4'
services:
  app:
    image: my_image
  command: sh -c "
     sleep 60 &&
     my_command"
Run Code Online (Sandbox Code Playgroud)

当您运行时,command: ["sleep", "60s", "&&", "my_command"]它将从位置 2 开始的所有参数传递给sleep命令。它实际上试图将您的命令运行为:

sleep '60s' '&&' 'uname'
Run Code Online (Sandbox Code Playgroud)