Code Monkey home page Code Monkey logo

docker-django's Introduction

docker-django

CI

This repository contains a collection of templated Dockerfile for image variants designed to support Django through the Gunicorn WSGI HTTP server. In addition, these images include support for GeoDjango, PostgreSQL, and Gevent.

Usage

Template Variables

  • PYTHON_VERSION - Python interpreter version (for python:*-slim-bullseye images)

Testing

An example of how to use cibuild to build and test an image:

$ CI=1 VERSION=3.2 PYTHON_VERSION=3.9 \
  ./scripts/cibuild

docker-django's People

Contributors

bryanquigley avatar colekettler avatar dependabot[bot] avatar hectcastro avatar jeancochrane avatar notthatbreezy avatar rbreslow avatar tnation14 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-django's Issues

Automatically label and close stale issues

We should use GitHub Actions to automatically label and close out issues that are not actionable or otherwise haven't been prioritized. The stale action is ideal for this.

The length of time before an action is considered stale is configurable. I think that a good starting point for this project would be 60 days until stale and a further 7 until close, the default settings. We typically create issues in response to Django upgrades being available and address those quickly. Other enhancement requests that are not prioritized within that time period are not likely to be prioritized later.

Add Python 3 support

It looks like there are a few ways to go about this:

  • Add a separate Dockerfile to this repo that extends python:3.6-slim instead of python:2.7-slim
  • Create a separate repo that extends from python:3.6-slim.

I don't see how to sensibly swap out only the FROM instruction in the base Dockerfile provided in this repo without an almost duplicate Dockerfile. Maybe there's something clever though that I don't see given my limited Docker experience.

Thoughts @hectcastro ?

Make Psycopg2 package install from source vs. binary package

Psycopg2 is changing the way their binary package installations work in 2.8.x. Details are outlined here:

http://initd.org/psycopg/articles/2018/02/08/psycopg-274-released/

The change forces two solution paths:

  1. Change the package name to psycopg2-binary to continue receiving binary packages
  2. Install the package with --no-binary to force an installation from source

Approach two seems like the most desirable for us given that we already install the build tools needed to build the source. Also, using the source gives us a bit more control over the versions of OpenSSL and libpq used.

Alpine GDAL package is unsupported by GeoDjango

It looks like the version of GDAL in the Alpine Linux testing repository is unsupported by GeoDjango. The version of GDAL from Alpine Linux is 2.3.2-r0, and GeoDjango only supports up to 2.2. The version of GDAL in Debian Stretch is 2.1.2+dfsg-5.

See packages:

See GeoDjango geolibs comparability matrix: https://docs.djangoproject.com/en/2.1/ref/contrib/gis/install/geolibs/

Create Django 2.0 container images

Add Django 2.0 to the image creation process. Also, double-check what versions are deprecated and consider dropping them from our build matrix (likely coupled with an announcement so that we can prioritize app upgrades internally).

Apply operations and backlog labels to all incoming issues

We should use GitHub Actions to apply the operations and backlog labels to all incoming issues to automatically put them into our triage queue. We can use the labeler Action to apply these labels for all file paths. Any issues submitted here are going to go through operations first regardless of their nature. We might as well automate this initial triage.

Add Python 3.8 variant for Django 2.2

Django 2.2.8 has added support for Python 3.8, as mentioned in the release notes:

Django 2.2.8 fixes a security issue, several bugs in 2.2.7, and adds compatibility with Python 3.8.

We should add a Python 3.8 variant image to our Django 2.2 build matrix.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.