如何将 docker-compose 别名为 docker compose?

Ado*_*Ren 45 docker docker-compose

据我了解,docker compose是最新版本。这是我至少从 docker 官方文档安装的一个。

我正在开发一个docker-compose在他们的 makefile 中使用的项目。

我如何将所有呼叫(及其参数)从 转发 docker-compose docker compose

我创建了一个别名: alias docker-compose="docker compose"

它在终端中运行良好。但不在 make 文件中。

Ado*_*Ren 111

我想出的一个解决方案是创建一个小脚本。

文件:/bin/docker-compose

内容:

docker compose "$@"
Run Code Online (Sandbox Code Playgroud)

或者,为了尊重以前的容器命名约定(_在 上使用下划线分隔符-):

docker compose --compatibility "$@"
Run Code Online (Sandbox Code Playgroud)

要使脚本可执行:sudo chmod +x /bin/docker-compose.

您可以使用 检查它docker-compose version

  • 请注意容器[命名约定已更改](https://docs.docker.com/compose/cli-command-compatibility/#flags-that-will-not-be-implemented),旧的分隔符是“_”和新版本使用“-”。您可以添加“--compatibility”标志来强制使用旧格式,以便与现有脚本直接兼容。那么内容将是:`docker compose --compatibility "$@"` (6认同)
  • 基于上面很棒的建议的酷 oneliner:``` echo 'docker compose --compatibility "$@"' | sudo tee -a /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose ``` (6认同)

小智 7

您可以符号链接到 docker compose 插件二进制文件。我的位于 /usr/libexec/docker/cli-plugins/docker-compose。所以就:

ln -f -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)