我有一个 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/