【发布时间】:2017-07-04 06:59:51
【问题描述】:
我有如下文件夹结构
.
├── docker-compose.yml
└── web-app
├── create_tomcat_admin.sh
├── Dockerfile
├── pom.xml
└── run.sh
而我的docker-compose.yml 就像
version: '3'
services:
web-app:
build:
context: .
dockerfile: web-app/Dockerfile
ports:
- 8080:8080
network_mode: "host"
一旦我执行docker-compose build,它就会完美执行,并在终端中显示如下
Step 10/15 : ADD /web-app/create_tomcat_admin_user.sh /create_tomcat_admin_user.sh
---> Using cache
---> 6ca9922b3628
Step 11/15 : ADD /web-app/run.sh /run.sh
---> Using cache
---> c1e843f2f67a
Step 12/15 : RUN chmod +x /*.sh
---> Using cache
---> 6b8e781b830c
Step 13/15 : COPY /web-app/target/*.war /tomcat/webapps
---> Using cache
---> fc046d9d1d3e
Step 14/15 : EXPOSE 8080
---> Using cache
---> 68f788c21a84
Step 15/15 : CMD /run.sh
---> Using cache
---> d88cc5594980
Successfully built d88cc5594980
Successfully tagged opt_web-app:latest`
构建 docker-compose 后,当我执行 docker-compose up 时出现错误
ben@ubuntu:~/Desktop/opt$ docker-compose up
Starting opt_web-app_1
Attaching to opt_web-app_1
web-app_1 | standard_init_linux.go:187: exec user process caused "no such file or directory"
opt_web-app_1 exited with code 1
ben@ubuntu:~/Desktop/opt$
我哪里出错了?但是编译docker-compose.yml的时候应该会报错吧?
【问题讨论】:
-
您可能已经能够正确构建映像,但运行映像可能会导致错误。
-
运行 run.sh 脚本。构建和运行是不同的步骤。如果您提供的命令在您的容器中不可用,则构建会正常,但不会运行。
-
这是我正在使用的Dockerfile。
-
谁能帮我解决这个问题。在另一台具有相同文件夹结构的
Ubuntu 16机器上,它工作正常,没有任何错误。 -
该错误消息没有帮助 - docker 需要改进它。环顾网络,我看到很多人在使用 Windows 行尾时都会得到它 - 他们使用 dos2unix 来修复它。我得到它的原因不同,但同样无用的错误消息。我有一个三行 Dockerfile,其 CMD 直接启动 Rust 二进制文件,没有 .sh 脚本。应该有一种方法可以挖掘来调试它。
标签: docker docker-compose dockerfile