Dockerized PostgreSQL and Django for Local Development
Docker and docker-compose make it dead simple to avoid dependency hell and have a consistent environment for your whole team while doing local development. This post walks through setting up a new Django project from scratch to use Docker and docker-compose. It is modeled after a previous post that I wrote about doing a similar thing with Laravel and MySQL.
Dockerfile
Nothing too interesting happening here. Installing python and pip.FROM ubuntu:16.04system update
RUN apt update RUN apt upgrade -y
python deps
RUN apt install -y python3-dev python3-pip
docker-compose.yml
version: '2'
services:
app:
build: .
ports:
- "8000:8000"
volumes:
- .:/app
working_dir: /app
command: bash -c "pip3 install -r requirements.txt && python3 manage.py migrate && python3 manage.py runserver 0:8000"
depends_on:
- db
db:
image: postgres:9.6.5-alpine
environment:
- POSTGRES_USER=feedread
- POSTGRES_PASSWORD=feedread
volumes:
- ./data:/var/lib/postgresql/data
ports:
- "5432:5432"
docker-compose up. Each time the app starts it will install the latest dependencies, run migrations, and start serving the app on localhost:8000Notes
- In order to do stuff with the database locally you should add the following record to your local /etc/hosts file
# /etc/hosts
127.0.0.1 db
- Since we define -
.:/appas a volume, this means that all of your local changes are immediately visible in the dockerized app. - If you need to access the running app or db container you can do so with
docker-compose exec app bashordocker-compose exec db bash. - This docker-compose file is not really suitable for production since it is not likely that you would want to build the container each time the app starts or automatically run migrations.
- You can add additional services like memcached, a mail server, an app server, a queue, etc., using the same method that we are using above with our database.
Thank you for reading! Share your thoughts with me on bluesky, mastodon, or via email.
Check out some more stuff to read down below.
Most popular posts this month
- Lev Lazinskiy
- SQLite DB Migrations with PRAGMA user_version
- My Custom Miniflux CSS Theme
- Convert Markdown to PDF in Sublime Text
- Terminal RSS Reader With Nom
Recent Favorite Blog Posts
This is a collection of the last 8 posts that I bookmarked.
- The circus freaks of open source from Drew DeVault's blog
- Clanker: A Word For The Machine from Armin Ronacher's Thoughts and Writings
- I ran a half-marathon! from gluecko.se
- My Running Tips from Kevin Bell's Blog
- tweet from Derek Sivers blog
- My life was changed by four sentences in four books from Derek Sivers blog
- The world reveals itself to those who travel by foot from Escaping Flatland
- 45 things from Sean Voisen
Articles from blogs I follow around the net
“They had the simplest task in the world.”
This is a really nice set of transitions when pinching in and out in Photos in iOS 26. This is trickier than it seems, because it’s not just a linear zoom (like it would be in Maps or Sketch, for example). It’s a zoom and reflow – from 3 items to 1 item pe...
via Unsung June 13, 2026Pluralistic: Shareholder supremacy and the precog CEO (13 Jun 2026)
Today's links Shareholder supremacy and the precog CEO: A bright line test that's totally unfalsifiable. Hey look at this: Delights to delectate. Object permanence: Msft v Linux geeks; James Joyce scholars v Joyce estate; iPod sweatshops; Pratchett initiat...
via Pluralistic: Daily links from Cory Doctorow June 13, 2026Dangerous Technology For Americans Only
There is a bit of schadenfreude on Twitter right now about Anthropic being hit by the US government’s export control directive to suspend access to Fable and Mythos. Anthropic and their leadership have spent a lot of time and effort describing its own tech...
via Armin Ronacher's Thoughts and Writings June 13, 2026Generated by openring