Skip to content

dockerfile/python-runtime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Python runtime Dockerfile

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.

Base Docker Image

Installation

  1. Install Docker.

  2. 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)

Usage

This image assumes that your application:

  • has a requirements.txt file to specify its dependencies.
  • either has a main.py script as entrypoint or defines CMD ["/env/bin/python", "/app/<custom-entry-file>.py"] in its Dockerfile.
  • listens on port 8080.

When building your application docker image, ONBUILD triggers:

  1. Create a new virtualenv under the /env directory in the container.
  2. Fetch the dependencies listed in requirements.txt into the virtualenv using pip install and leverage docker caching appropriately.
  3. 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/"

About

Python runtime Dockerfile for trusted automated Docker builds.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages