Blacksonic Blacksonic -4 years ago 187
PHP Question

Why php development server hangs with docker compose?

I have the following

docker-compose.yml
configuration file:

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


When I run
docker-compose up
it downloads the base image but then it hangs here:

Recreating silextwig_silex-twig_1
Attaching to silextwig_silex-twig_1


What am I doing wrong? There is nothing available on port 3000.
I know there are setups with php-fpm + nginx but that seemed complicated for only development.

Answer Source

That is normal. It is attaching to the stdout of the container (for which there is no stdout being logged). At this point, the container is running.

If you want to run in the background you would run with docker-compose up -d instead of just docker-compose up.

The actual HTTP request to port 3000 won't work because PHP is listening only on localhost. You need to modify your command to be php -S 0.0.0.0:4000 /app/index.php so that it is listening on all IP addresses and can accept connections through the Docker NAT.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download