【发布时间】: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