【发布时间】:2018-03-25 16:46:54
【问题描述】:
我是使用 docker 尤其是 docker compose 的初学者。目前,在创建我最初的简单 docker 环境时,我遇到了第一个错误,我不知道为什么。 我试图在 stackoverflow 中寻找解决方案,但没有发现任何可以帮助我的东西。 使用“docker-compose up”启动我的 docker,我收到以下错误:
$ docker-compose up
删除 errorinstance_app_1
重新创建 8a358dfcb306_8a358dfcb306_8a358dfcb306_errorinstance_app_1 ...
重新创建 8a358dfcb306_8a358dfcb306_8a358dfcb306_errorinstance_app_1 ... 错误
错误:对于 8a358dfcb306_8a358dfcb306_8a358dfcb306_errorinstance_app_1 无法启动服务应用程序:oci 运行时错误:container_linux.go:265:启动容器进程导致“exec:\”./run.sh\“:stat ./run.sh:没有这样的文件或目录” 错误:对于应用程序无法启动服务应用程序:oci 运行时错误:container_linux.go:265:启动容器进程导致“exec:\”./run.sh\“:stat ./run.sh:没有这样的文件或目录” 错误:启动项目时遇到错误。
所以。按照我的文件夹结构:
-
项目
- docker-compose.yml
-
码头工人
-
Java
- Dockerfile
-
Java
-
源代码
- run.sh
按照我的 docker-compose.yml:
version: '2'
services:
app:
build:
dockerfile: ./Docker/Java/Dockerfile
context: .
volumes:
- ./src:/usr/local/etc/
working_dir: /usr/local/etc/
command: ./run.sh
并关注我的 docker 文件:
FROM java:7-jdk-alpine
# WORKDIR /usr/local/etc
运行.sh
echo "Hello world."
是的,我知道我只能在 docker-compose 文件中执行该解决方案。但将来我需要扩展 Dockerfile。
有人可以分别帮助我有没有人看到这个问题?
【问题讨论】:
-
能否请您更改命令:/bin/bash,然后检查/usr/local/etc/目录中是否存在该脚本以及它具有哪些权限?
-
注释掉命令,开始一个 bash 会话。一旦进入你应该在你提到的工作目录中......另外,检查@Sergiu提到的执行权限
-
更改命令我得到一个“未找到”异常。直接在 Dockerfile "/bin/sh: bash: not found" 中使用该命令。在 docker-compose 文件中包含该命令“错误:对于 java 无法启动服务应用程序:oci 运行时错误:container_linux.go:265:启动容器进程导致“exec:\”/bin/bash\”:stat /bin/bash:没有这样的文件或目录”。也只尝试了“bash”
-
将 CMD /bin/bash 直接添加到 dockerfile 并运行 docker run -it
/bin/bash。有用。但是为什么不能从 docker-compose 文件中运行 bin/bash 命令呢?
标签: bash docker docker-compose