docker-compose up 报错

Ben*_*ean 5 docker dockerfile docker-compose

我有如下文件夹结构

.
??? docker-compose.yml
??? web-app
    ??? create_tomcat_admin.sh
    ??? Dockerfile
    ??? pom.xml
    ??? run.sh 
Run Code Online (Sandbox Code Playgroud)

而我docker-compose.yml的就像

version: '3'
services:
  web-app:
    build:
      context: .
      dockerfile: web-app/Dockerfile
    ports:
       - 8080:8080
    network_mode: "host"
Run Code Online (Sandbox Code Playgroud)

一旦我执行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`
Run Code Online (Sandbox Code Playgroud)

构建 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$
Run Code Online (Sandbox Code Playgroud)

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

Dov*_*fen -1

当我尝试从在 Linux 中创建的项目在 Windows 上运行 docker-compose 时,我遇到了同样无益的错误。如果您在 Windows 上克隆 Linux 项目,默认情况下 Git 会添加 Windows 样式的行结尾,这会弄乱任何 Bash 脚本。如果是这种情况,请运行git config --global core.autocrlf false将 Git 配置为从不更改行结尾。然后删除存储库并重新克隆它。

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