【问题标题】:docker-compose not found from script从脚本中找不到 docker-compose
【发布时间】:2016-06-27 12:48:00
【问题描述】:

我有一个 Dockerfile,基本上如下:

FROM mhart/alpine-node:5

COPY . /project
WORKDIR /project

ENTRYPOINT ["./startup.sh"]

我的startup.sh 也很简单:

#!/bin/sh
set -e
docker-compose up -d

我确实有一个docker-compose.yml,但这里没有必要描述它。

我要做的第一件事是使用我的Dockerfile 构建docker image,所以:

docker build -t test .

然后运行这个图像:

docker run -d test

这将启动startup.sh

很遗憾,出现以下错误:

./startup.sh:第 10 行:docker-compose:未找到

如果我只做./startup.sh 而没有 docker 的东西,它就像一个魅力。

问题可能来自哪里?

【问题讨论】:

  • 您的startup.sh 脚本应该在容器内启动一个进程,docker-compose 只是您主机上用于管理容器的工具。
  • 知道了。谢谢你的解释。
  • 虽然您想要在容器中运行 compose inside 并非不可想象 (dind),但 Erik Dannenberg 的答案很可能就是您想要的。

标签: bash docker docker-compose dockerfile


【解决方案1】:

尝试在脚本内添加docker-compose的完整路径

which docker-compose

>/usr/bin/some/path/docker-compose

然后将其添加到您的脚本中

#!/bin/sh
set -e
/usr/bin/some/path/docker-compose up -d

您的本地 PATH 设置对于 docker 调用的脚本是未知的。因此,您必须命名完整路径。

【讨论】:

    猜你喜欢
    • 2020-01-24
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 2021-02-18
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多