如何在不覆盖现有的情况下将命令附加到 docker-compose.yml?

Rik*_*ipm 8 docker docker-compose

在 docker-compose.yml 我有一个服务

app:
    image: yiisoftware/yii2-php:7.1-apache
    volumes:
      - ~/.composer-docker/cache:/root/.composer/cache:delegated
      - ./:/app:delegated
    ports:
      - '80:80'
    depends_on:
      - db
Run Code Online (Sandbox Code Playgroud)

所以我想yii migrate --interactive=0在容器启动时执行命令。但是如果我只是添加字符串

command: "yii migrate --interactive=0"
Run Code Online (Sandbox Code Playgroud)

它覆盖已在yiisoftware/yii2-php:7.1-apachedockerfile 中指定的命令。如何附加命令,而不是替换?是否可以?

我已经用谷歌搜索过这个问题,但最流行的解决方案是“创建你自己的 dockerfile”。我可以在不创建/修改 dockerfile 或 shell 脚本的情况下解决这个问题,只使用 docker-compose 吗?

bel*_*ckn 4

为此,您必须ENTRYPOINT docker-compose.yml. 除了构建自己的 Dockerfile 之外,没有其他办法可以解决这个问题。

尽管我正在搜索,CMD但我无法在此图像的 Dockerfile 中找到指令。所以可能就是正在使用的。

我对 PHP 不熟悉,所以我无法估计您需要更改哪些内容才能运行满足您特定需求的容器,但这些是您应该查看的要点。