This repository contains Dockerfile of Python runtime for Docker's automated build published to the public Docker Hub Registry.
This image is a base image that makes it easy to dockerize standard Python application.
It can automatically bundle a Python
application with its dependencies and set the default command with no additional Dockerfile instructions.
This project heavily borrowed code from Google's google/python-runtime Docker image.
-
Install Docker.
-
Download automated build from public Docker Hub Registry:
docker pull dockerfile/python-runtime
(alternatively, you can build an image from Dockerfile:
docker build -t="dockerfile/python-runtime" github.com/dockerfile/python-runtime
)
This image assumes that your application:
- has a
requirements.txt
file to specify its dependencies. - either has a
main.py
script as entrypoint or definesCMD ["/env/bin/python", "/app/<custom-entry-file>.py"]
in its Dockerfile. - listens on port
8080
.
When building your application docker image, ONBUILD
triggers:
- Create a new virtualenv under the
/env
directory in the container. - Fetch the dependencies listed in
requirements.txt
into thevirtualenv
usingpip install
and leverage docker caching appropriately. - Copy the application sources under the
/app
directory in the container
- Step 1: Create a Dockerfile in your
Python
application directory with the following content:
FROM dockerfile/python-runtime
- Step 2: Build your container image by running the following command in your application directory:
docker build -t="app" .
- Step 3: Run application by mapping port
8080
:
APP=$(docker run -d -p 8080 app)
PORT=$(docker port $APP 8080 | awk -F: '{print $2}')
echo "Open http://localhost:$PORT/"