Why php development server hangs with docker compose?

I have the following docker-compose.yml configuration file:

  image: php:7.1
  command: php -S localhost:4000 /app/index.php
    - .:/app
    - 3000:4000

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

  • Cannot connect to the Docker daemon. Is the docker daemon running on this host?
  • How to run Redis on Docker using docker-compose.yml?
  • Multi-Node Hadoop in kubernetes
  • Mount git branches in a container
  • Docker 1.6 and Registy 2.0
  • Tensorflow Object Detection Killed before starting
  • 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.

  • docker: npm install on docker start
  • How to determine when cmds in docker exec complete
  • Postgresql raises 'data directory has wrong ownership' when trying to use volume
  • Does Docker update contents of volume when mounted if changes are made in Dockerfile?
  • How to make postgres.app db accessible to docker container?
  • Dynamic mount point for Shared Volume Containers
  • One Solution collect form web for “Why php development server hangs with docker compose?”

    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 /app/index.php so that it is listening on all IP addresses and can accept connections through the Docker NAT.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.