2015-11-25 88 views
0

我試圖運行一個容器使用碼頭撰寫。我已經使用普通的docker命令做了它並且它可以工作,但是當我使用docker撰寫它時,它沒有像預期的那樣工作。泊塢窗撰寫阿帕奇不工作

予編譯使用搬運工撰寫build命令圖像:

docker-compose build php 

,並使用該圖像兩者碼頭工人和搬運工-撰寫的命令。

docker run -p 80:80 -v /navicu docker_php 
docker-compose up php 

我改變了其中一個容器的端口,以防止它們崩潰。例如:docker上的端口80和docker-compose上的800。

問題是無論我做什麼,docker-compose容器都無法正常工作。它不允許本地主機上的連接(它顯示500錯誤)。另一方面,碼頭容器允許連接並按預期顯示頁面。

這裏是泊塢窗,compose.yml:

php: 
    build: . 
    ports: 
    - "80:80" 
    volumes: 
    - ./navicu:/navicu 

PD:在Dockerfile使用PHP的Apache官方圖片,並添加vhost.conf文件。

+0

只是爲了澄清:您試圖連接到主機(運行docker映像的主機)還是連接到docker映像本身? – Squirrel

+0

我試了兩個主機。這是因爲我將主機的端口綁定到容器的端口。例如,如果我在主機和容器(來自docker run的容器)上curl localhost,它可以工作,但是當我對另一個容器(來自docker-compose的容器)執行相同操作時,它不起作用。 –

回答

1

docker run不等同於撰寫文件。如果你嘗試

docker run -p 80:80 -v $PWD/navicu:/navicu docker_php 

它會是一樣的,我希望你會看到相同的500錯誤。

等效撰寫卷將

volumes: 
    - /navicu 

我相信你得到一個500錯誤的原因是因爲你在/navicu與主機目錄中的文件,這可能是更換容器內容不正確,或缺少東西。