2017-07-04 150 views
5

我的文件夾結構如下圖所示搬運工,撰寫了給錯誤

. 
├── 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)。 –

回答

0

當我試圖在Linux中創建的項目上運行docker-compose時,我遇到了同樣的無用的錯誤。如果你在Windows上克隆一個Linux項目,默認情況下,Git添加了Windows風格的行結尾,這些行結尾混淆了任何Bash腳本。如果是這種情況,運行git config --global core.autocrlf false來配置Git永不改變行尾。然後刪除存儲庫並重新克隆它。

或者,如果您最初在Windows上創建項目,IDE會多次添加Windows樣式行結尾。如果是這種情況,那麼在Notepad ++中,單擊編輯菜單> EOL Conversion> Unix。