:title: Python Web app example
:description: Building your own python web app using docker
:keywords: docker, example, python, web app

.. _python_web_app:

Python Web App
==============

.. include:: example_header.inc

The goal of this example is to show you how you can author your own
Docker images using a parent image, making changes to it, and then
saving the results as a new image. We will do that by making a simple
hello Flask web application image.

**Steps:**

.. code-block:: bash

    sudo docker pull shykes/pybuilder

We are downloading the ``shykes/pybuilder`` Docker image

.. code-block:: bash

    URL=http://github.com/shykes/helloflask/archive/master.tar.gz

We set a ``URL`` variable that points to a tarball of a simple helloflask web app

.. code-block:: bash

    BUILD_JOB=$(sudo docker run -d -t shykes/pybuilder:latest /usr/local/bin/buildapp $URL)

Inside of the ``shykes/pybuilder`` image there is a command called
``buildapp``, we are running that command and passing the ``$URL`` variable
from step 2 to it, and running the whole thing inside of a new
container. The ``BUILD_JOB`` environment variable will be set with the new container ID.

.. code-block:: bash

    sudo docker attach $BUILD_JOB
    [...]

While this container is running, we can attach to the new container to
see what is going on. You can use Ctrl-C to disconnect.

.. code-block:: bash

    sudo docker ps -a

List all Docker containers. If this container has already finished
running, it will still be listed here.

.. code-block:: bash

    BUILD_IMG=$(sudo docker commit $BUILD_JOB _/builds/github.com/shykes/helloflask/master)

Save the changes we just made in the container to a new image called
``_/builds/github.com/hykes/helloflask/master`` and save the image ID in
the ``BUILD_IMG`` variable name.

.. code-block:: bash

    WEB_WORKER=$(sudo docker run -d -p 5000 $BUILD_IMG /usr/local/bin/runapp)

- **"docker run -d "** run a command in a new container. We pass "-d"
  so it runs as a daemon.
- **"-p 5000"** the web app is going to listen on this port, so it
  must be mapped from the container to the host system.
- **"$BUILD_IMG"** is the image we want to run the command inside of.
- **/usr/local/bin/runapp** is the command which starts the web app.

Use the new image we just created and create a new container with
network port 5000, and return the container ID and store in the
``WEB_WORKER`` variable.

.. code-block:: bash

    sudo docker logs $WEB_WORKER
     * Running on http://0.0.0.0:5000/

View the logs for the new container using the ``WEB_WORKER`` variable, and
if everything worked as planned you should see the line ``Running on
http://0.0.0.0:5000/`` in the log output.

.. code-block:: bash

    WEB_PORT=$(sudo docker port $WEB_WORKER 5000 | awk -F: '{ print $2 }')

Look up the public-facing port which is NAT-ed. Find the private port
used by the container and store it inside of the ``WEB_PORT`` variable.

.. code-block:: bash

    # install curl if necessary, then ...
    curl http://127.0.0.1:$WEB_PORT
      Hello world!

Access the web app using the ``curl`` binary. If everything worked as planned you
should see the line ``Hello world!`` inside of your console.

**Video:**

See the example in action

.. raw:: html

    <div style="margin-top:10px;">
      <iframe width="720" height="350" src="http://ascii.io/a/2573/raw" frameborder="0"></iframe>
    </div>

Continue to :ref:`running_ssh_service`.
