bash - 从脚本中找不到 docker-compose

标签 bash docker docker-compose dockerfile

我有一个 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 镜像,因此:

docker build -t test 。

然后运行此图像:

docker run -d 测试

这将启动startup.sh

不幸的是,我出现以下错误:

./startup.sh: line 10: docker-compose: not found

如果我只执行 ./startup.sh 而不使用 docker 的东西,它就像一个魅力。

问题可能来自哪里?

最佳答案

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

which docker-compose

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

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

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

docker 调用的脚本不知道您的本地 PATH 设置。因此您必须命名完整路径。

关于bash - 从脚本中找不到 docker-compose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38054394/

相关文章:

bash - 为什么 "24 > 10#24"会生成错误 token ?

docker - 我如何检查Docker镜像有多少版本?

docker - docker-compose无法进入新容器

string - 线路操作和排序

linux - 导出不通过另一个脚本工作

bash - 是否有 Bash 单行代码来检查三个命令的输出是否匹配?

python - 错误 : pg_config executable not found when installing psycopg2 on Alpine in Docker

laravel - 通过 Laravel Sail 安装并在端口上可用 Meil​​isearch 不会添加模型索引; date.ms 文件似乎丢失

docker - 构建镜像时在 docker-compose 中使用 docker --squash

node.js - Docker容器中的Node.js和React