Skip to content

Latest commit

 

History

History
281 lines (206 loc) · 24.7 KB

File metadata and controls

281 lines (206 loc) · 24.7 KB

Release Notes

Latest Changes

Features

Upgrades

Docs

Internal

2.1.0

Features

  • ✨ Add support for multiarch builds, including ARM (e.g. Mac M1). PR #347 by @tiangolo.

Refactors

Docs

Upgrades

Internal

2.0.0

Highlights of this release:

  • Support for Python 3.10, 3.11, and 3.9.
  • Deprecation of Python 3.6 and 2.7.
    • The last Python 3.6 and 2.7 images are available in Docker Hub, but they won't be updated or maintained anymore.
    • The last images with a date tag are python3.6-2022-11-25 and python2.7-2022-11-25.
  • Upgraded versions of all the dependencies.
  • Small improvements and fixes.

Features

Breaking Changes

Upgrades

  • ⬆️ Bump flask from 2.0.1 to 2.2.2 in /docker-images. PR #296 by @dependabot[bot].
  • ⬆️ Upgrade Flask to the latest version to support Python 3.6. PR #301 by @tiangolo.
  • ⬆️ Upgrade Nginx and Alpine (in the base images). PR #283 by @tiangolo.

Docs

Internal

1.4.0

  • Add GitHub Sponsors button. PR #177.
  • Add Python 3.8 and Alpine with Python 3.8. This also includes all the recent updates of the parent image, like:
    • Latest version of Nginx, 1.17.10.
    • Latest version of Debian, Buster.
    • Latest version of Alpine, 3.11.
    • PR #176.
  • Remove support for Python 3.5. PR #175.
  • Refactor build setup:
    • Move to GitHub actions.
    • Re-use and simplify code and configs.
    • Simplify and update tests.
    • Remove deprecated -index sufix tags.
    • PR #173.

1.3.0

  • This is the last version to support:
    • Debian Stretch (before upgrading to Buster).
    • Python 3.5.
    • Alpine 3.7 and 3.8 (before upgrading to Alpine 3.11).
    • Alpine in older versions of Python, 2.7 and 3.6 (Before upgrading to Python 3.8).
    • Tags with -index (use ENV STATIC_INDEX 1 instead).
    • If you need any of those, make sure to use a tag for the build date 2020-05-04.

1.2.1

1.2.0

  • Refactor tests to use env vars and add image tags for each build date, like tiangolo/uwsgi-nginx-flask:python3.8-2019-10-14. PR #154.
  • Upgrade Travis. PR #135.

1.1.0

  • Move /start.sh and /app/prestart.sh functionality to parent image. PR #134.

1.0.0

2019-02-02:

2019-01-01:

  • Improved guide for single page applications.
  • Links to project generators.

2018-12-29:

  • Travis integration, images built and pushed by Travis.
  • Fixes in parent image for Nginx.

2018-11-23:

  • New Alpine 3.8 images for Python 2.7, Python 3.6 and (temporarily disabled) Python 3.7.

2018-09-22:

  • New Python 3.7 images, based on standard Debian and Alpine Linux. All the documentation and project templates have been updated to use Python 3.7 by default. Thanks to desaintmartin in this PR.

2018-06-22:

  • You can now use NGINX_WORKER_CONNECTIONS to set the maximum number of Nginx worker connections and NGINX_WORKER_OPEN_FILES to set the maximum number of open files. Thanks to ronlut in this PR.

2018-06-22:

Improvements from parent image:

  • Make uWSGI require an app to run, instead of going in "full dynamic mode" while there was an error. Supervisord doesn't terminate itself but tries to restart uWSGI and shows the errors. Uses need-app as suggested by luckydonald in this comment.

  • Correctly handled graceful shutdown of uWSGI and Nginx. Thanks to desaintmartin in this PR.

2018-02-04:

It's now possible to set the number of Nginx worker processes with the environment variable NGINX_WORKER_PROCESSES. Thanks to naktinis in this PR.

2018-01-14:

  • There are now two Alpine based versions, python2.7-alpine3.7 and python3.6-alpine3.7.

2017-12-10:

  • Added support for /app/prestart.sh script to run arbitrary code before starting the app (for example, Alembic - SQLAlchemy migrations). The documentation for the /app/prestart.sh is in the main README.
  • /app is part of the PYTHONPATH environment variable. That allows global imports from several places, easier Alembic integration, etc.

2017-12-08: Now you can configure which port the container should listen on, using the environment variable LISTEN_PORT thanks to tmshn in this PR.

2017-09-10: Updated examples and sample project to work with SPAs even when structuring the app as a package (with subdirectories).

2017-09-02:

  • Example project with a Python package structure and a section explaining how to use it and structure a Flask project like that.
  • Also, the examples and documentation now use the flask run commands, that allows running a package application while developing more easily.

2017-08-10: Many changes:

  • New official image tags: python3.6, python3.6-index, python.3.5, python3.5-index, python2.7 and python2.7-index. All the other images are deprecated in favor is this ones.
  • Python 3.6 is now the recommended default. Even the example projects for other versions were removed to discourage using older Python versions for new projects.
  • Any of the older images that didn't have a Python version will show a deprecation warning and take some time to start. As soon the tag latest will point to Python 3.6 and the other tags will be removed.
  • There were several improvements in the base image tiangolo/uwsgi-nginx that improved this image too.
  • By default, now there is no limit in the upload file size in Nginx. It can be configured in an environment variable.
  • It's now possible to configure several things with environment variables:
    • Serve index.html directly: STATIC_INDEX
    • Set the max upload file size: NGINX_MAX_UPLOAD
    • Set a custom uwsgi.ini file (that allows using a custom directory different than /app): UWSGI_INI (using the ideas by @bercikr in #5 ).
    • Set a custom ./static/ path: STATIC_PATH
    • Set a custom /static/ URL: STATIC_URL
  • As all this configurations are available as environment variables, the choices are a lot more simple. Actually, any new project would just need to use a Dockerfile with:
FROM tiangolo/uwsgi-nginx-flask:python3.6

COPY ./app /app

and then customize with environment variables.