我只是想知道如何在另一个目录中运行docker-entrypoint脚本。例如,
the-service:
image: the-service
container_name: the-service
entrypoint: ./app/the/docker-entrypoint.sh
build: ./app/the
ports:
- 8080:8080
我得到了
ERROR: for the-service Cannot start service the-service: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"./app/the-service/docker-entrypoint.sh\": stat ./app/the-service/docker-entrypoint.sh: no such file or directory": unknown
ERROR: Encountered errors while bringing up the project.
docker-compose版本是2.1。 那么运行这个脚本的正确方法是什么?
由于
答案 0 :(得分:1)
我想我已经弄明白了。 您正在使用构建选项,以便docker镜像可以存在于docker-compose项目中。 这有点不标准,但完全没问题。 使用图像更为标准。
无论docker-compose.yml文件中的位置如何,都会在构建后执行入口点。 当我们编写入口点时,我们正在写入图像中的文件而不是本地文件系统。
您应该按如下方式编辑.app / the / Dockerfile 添加“COPY docker-entrypoint.sh /” 添加“ENTRYPOINT [”sh“,”/ docker-entrypoint.sh“]
然后你可以通过删除“入口点:./ app / the / docker-entrypoint.sh”来编辑你的docker-compose.yml
老答案
如果不自行测试,我会认为这些可行:
答案 1 :(得分:0)
尝试使用{{1}}选项将当前工作目录设置为泊坞窗文件中应用的位置 https://docs.docker.com/engine/reference/builder/#workdir