Skip to content
This repository has been archived by the owner on Dec 17, 2023. It is now read-only.

Latest commit

 

History

History
86 lines (59 loc) · 3.52 KB

README.md

File metadata and controls

86 lines (59 loc) · 3.52 KB

Supported tags and Dockerfile links

You must explicitly use one of the tags above. The latest tag is not assigned since each tag represents a different variant, not an incremental version.

NGINX-UWSGI

Docker image with Nginx, uWSGI and Python running in a single container to enable running Python Web Apps on NGINX.

GitHub Repo: https://github.com/robpco/docker-nginx-uwsgi

Docker Hub Images: https://hub.docker.com/r/robpco/nginx-uwsgi/

Overview

This Docker image allow the creation/migration of Python Web Apps to run on Nginx and uWSGI in a single container. It's designed for use as base image for:

  • Other images - such as a pre-built image for running Flask Apps nginx-uwsgi-flask .
  • A development image that can be customized with your unique web-framework, Python libraries and code.

This repo auto-generates images to Docker-Hub. It includes variants for each supported Python version (2.7, 3.6).

Usage

The Docker-Hub repository contains auto-generated images from this repo. They can be referenced (or pulled) by using the image name robpco/nginx-uwsgi, plus a tag for the python version desired (ex: :python3.6).

Custom Environment Variables

This image supports the following custom environment variables:

  • UWSGI_INI - the path and file of the configuration info
    • default: /app/uwsgi.ini
  • NGINX_MAX_UPLOAD - the maximum file upload size allowed by Nginx
    • 0 = unlimited (image default)
    • 1m = normal Nginx default
  • LISTEN_PORT - custom port that Nginx should listen on
    • 80 = Nginx default

Setting Environment Variables

Environment variables can be set in multiple ways. The following examples, demonstrate setting the LISTEN_PORT environment variable via three different methods. These methods apply to the other Environment Variables as well.

Setting in a Dockerfile

# ... (snip) ...
ENV LISTEN_PORT 8080
# ... (snip) ...

Setting during docker run with the -e option

docker run -e LISTEN_PORT=8080 -p 8080:8080 myimage

Setting in docker-compose file using the environment: keyword in a docker-compose file

version: '2.2'
services:
  web:
    image: myapp
  environment:
    LISTEN_PORT: 8080

UPDATES

  • 2017-12-11: Added multiple tags per variant: py3.6 is the same as python3.6, and so forth...
  • 2017-11-29: Added ability to change port Nginx listens on with new environment variable LISTEN_PORT.
    • Thanks to github user tmshn
  • 2017-11-29: Automatic image re-build when Python updates
  • 2017-11-28: Updated Nginx version
  • 2018-05-04: Updated to use pythonx.x-stretch as base & Nginx 1.13.12-1
  • 2018-06-10: Updated to Nginx 1.15.0-1

CHANGELOG

  • 2017-12-15: Fix to avoid duplicate listen entries in nginx.conf
  • 2017-11-30: limit build failures caused by GPG key validation failing
  • 2017-11-28: Fixed console errors from supervisor process:
    • Added explicit path reference to supervisord.conf in Dockerfile CMD statement
    • Added explicitly set username in supervisord.conf