2017-06-13 53 views
0

我有以下docker-compose.yml配置文件:爲什麼PHP開發服務器與Docker組合掛起?

silex-twig: 
    image: php:7.1 
    command: php -S localhost:4000 /app/index.php 
    volumes: 
    - .:/app 
    ports: 
    - 3000:4000 

當我運行docker-compose up它下載基地形象,但隨後它掛在這裏:

Recreating silextwig_silex-twig_1 
Attaching to silextwig_silex-twig_1 

我在做什麼錯?在端口3000上沒有任何東西可用。 我知道有一些使用php-fpm + nginx的設置,但是對於開發而言這似乎很複雜。

+0

當您在守護進程模式下運行時它會掛起嗎? – Starx

+0

您也可以檢查容器的日誌以查看發生了什麼。 [更多](https://docs.docker.com/compose/reference/logs/) – Starx

+0

日誌爲空,只是附加信息 – Blacksonic

回答

1

這是正常的。它附在容器的stdout上(沒有記錄stdout)。此時,容器正在運行。

如果你想在後臺運行,你可以使用docker-compose up -d而不是僅僅使用docker-compose up

對端口3000的實際HTTP請求將不起作用,因爲PHP只在本地主機上偵聽。您需要將您的命令修改爲php -S 0.0.0.0:4000 /app/index.php,以便它監聽所有IP地址,並且可以通過Docker NAT接受連接。

+0

謝謝,它解決了這個問題 – Blacksonic