搬运工,撰写了给错误

问题描述:

我的文件夹结构如下图所示搬运工,撰写了给错误

. 
├── 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 up它给错误

[email protected]:~/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 
[email protected]:~/Desktop/opt$ 

我在哪里出错了?但建设docker-compose.yml时应显示错误?

+0

您可能已经能够**正确地生成**图像,但**正在运行**图像可能会导致错误。 – Ayushya

+0

过去run.sh脚本。建设和运行是不同的步骤。如果您提供的命令在您的容器中不可用,则生成将会正常,但不会运行。 – papey

+0

这是我正在使用的[Dockerfile](https://gist.github.com/Beanben/f21d317b926459a0164eff9e9c7e362a)。 –

当我试图在Linux中创建的项目上运行docker-compose时,我遇到了同样的无用的错误。如果你在Windows上克隆一个Linux项目,默认情况下,Git添加了Windows风格的行结尾,这些行结尾混淆了任何Bash脚本。如果是这种情况,运行git config --global core.autocrlf false来配置Git永不改变行尾。然后删除存储库并重新克隆它。

或者,如果您最初在Windows上创建项目,IDE会多次添加Windows样式行结尾。如果是这种情况,那么在Notepad ++中,单击编辑菜单> EOL Conversion> Unix。