Docker compose 在docker compose yaml文件中嵌入heredoc

Docker compose 在docker compose yaml文件中嵌入heredoc,docker-compose,yaml,heredoc,Docker Compose,Yaml,Heredoc,我想在docker compose yaml文件中嵌入一个HEREDOC version: "3.7" services: test-cli: image: ubuntu entrypoint: | /bin/sh << HERE echo hello echo goodbye HERE 版本:“3.7” 服务: 测试cli: 图片:ubuntu 入口点:| /bin/sh与相反,似乎给entrypoint的参数

我想在docker compose yaml文件中嵌入一个HEREDOC

version: "3.7"

services:
  test-cli:
    image: ubuntu
    entrypoint: |
      /bin/sh << HERE
      echo hello
      echo goodbye
      HERE
版本:“3.7”
服务:
测试cli:
图片:ubuntu
入口点:|
/bin/sh与相反,似乎给entrypoint的参数没有传递给“/bin/sh-c”,而是被解析并转换为参数数组(argv)

事实上,如果在您提供的示例上运行
docker inspect
,您可以看到您的命令行已转换为数组:

         "Entrypoint": [
            "/bin/sh",
            "<<",
            "HERE",
            "echo",
            "hello",
            "echo",
            "goodbye",
            "HERE"
        ],
如果您确实需要HEREDOC,您可以:

version: "3.7"

services:
  test-cli:
    image: ubuntu
    entrypoint:
      - /bin/bash
      - '-c'
      - |
        /bin/sh << HERE
        echo hello
        echo goodbye
        HERE
版本:“3.7”
服务:
测试cli:
图片:ubuntu
入口点:
-/bin/bash
-“-c”
- |
/垃圾箱/垃圾箱
version: "3.7"

services:
  test-cli:
    image: ubuntu
    entrypoint:
      - /bin/bash
      - '-c'
      - |
          echo hello
          echo goodbye
version: "3.7"

services:
  test-cli:
    image: ubuntu
    entrypoint:
      - /bin/bash
      - '-c'
      - |
        /bin/sh << HERE
        echo hello
        echo goodbye
        HERE