Gunicorn is stuck on docker run command with a Flask Application

I have my container app_container built, exposing port 8000 as per my application code. The entry point to the container is ENTRYPOINT ["/usr/local/bin/gunicorn", "web_interface:app", "-w 4", "-t 90", "--log-level=info", "-b 127.0.0.1:8000", "--reload"].

When I build and run the container with docker run --link postgres_db_container --name foo app_container, it runs the gunicorn command to the app. Unlike when i run the app locally, it stops at

  • Run two processes in a single docker container or two containers connecting to the same DB?
  • Docker push on OS/X very slow - and seems to push layers that have already been pushed
  • Docker run command, volumes error
  • Why I can't rm docker image?
  • Including data in MySQL Docker container
  • Issue with telefonica/orchestrator
  • [2017-06-19 16:01:16 +0000] [1] [INFO] Starting gunicorn 19.7.1
    [2017-06-19 16:01:16 +0000] [1] [INFO] Listening at: http://127.0.0.1:8000
    [2017-06-19 16:01:16 +0000] [1] [INFO] Using worker: sync
    [2017-06-19 16:01:16 +0000] [8] [INFO] Booting worker with pid: 8
    [2017-06-19 16:01:16 +0000] [10] [INFO] Booting worker with pid: 10
    [2017-06-19 16:01:16 +0000] [11] [INFO] Booting worker with pid: 11
    [2017-06-19 16:01:16 +0000] [13] [INFO] Booting worker with pid: 13
    

    Anybody have a clue as to why the gunicorn process just stalls here, and does not continue?

    No errors to go on either. So if you have any idea how to get more info, Im all ears…

    Edit:

    When cancel the process with control+c, I see a test print message :

    ^C[2017-06-19 16:09:27 +0000] [1] [INFO] Handling signal: int
    [2017-06-19 16:09:27 +0000] [10] [INFO] Worker exiting (pid: 10)
    [2017-06-19 16:09:27 +0000] [11] [INFO] Worker exiting (pid: 11)
    [2017-06-19 16:09:27 +0000] [8] [INFO] Worker exiting (pid: 8)
    ---- Generate Mapping ----
    ---- Preparing Databases ----
    

    So it seems gunicorn is hung up on some process, but I dont know how to find out what it is.

  • How do I mount the data from two different versions of the same docker container/volume?
  • docker containers static IP to communicate two different hosts
  • How to disallow push to docker repository
  • Docker uses all memory and crashes the system
  • Deploy docker registry in Jelastic
  • Launching node docker container for debugging from VS Code
  • One Solution collect form web for “Gunicorn is stuck on docker run command with a Flask Application”

    Let’s give some combo suggestions:

    • Check that you are mapping a port to your localhost in order to access the container app:

      docker run -p 8000:8000 (rest of the command)
      
    • Listen to "-b 0.0.0.0:8000" instead of "-b 127.0.0.1:8000", that is a requirement for docker to map ports. So see docker ps, search for the symbol -> in PORTS column (you should see 0.0.0.0:8000->8000.

    Then, navigate to localhost:8000 in your web browser to check that your app properly renders.

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