Blog / Docker

Local Django development with Docker and Python 3.5

September 18, 2016

I was chatting with a friend of mine the other day about new Shopify apps to build with Django. We decided it's finally time to start using Python 3.

Python 3 was actually released almost 8 years ago (and the programming language itself is over 25 years old!). But adoption had been slow due to backwards incompatibility with previous versions. There are tons of third-party Python libraries and if your project uses one of these …

Ansible playbook for provisioning a Jenkins CI server

May 27, 2016

I've finally decided to set up a Jenkins CI server for my Django projects earlier this week. For a long time, I've been deploying code via command line with Ansible. It worked very well but occasionally I find myself deploying from a coffee shop with unreliable connection, causing the deployment to get interrupted. Deploying instead from a virtual private server in the cloud would solve this and using Jenkins to do it was the first …

Using ipdb with Docker Compose for interactive debugging

May 30, 2015

Back in the early days of Docker Compose, when it was still called Fig, you couldn't use ipdb with it to do interactive debugging because the container's service ports weren't exposed when using the run command. This has been fixed by including a ---service-ports option to the docker-compose run command.

Below is a sample usage for one of my Django projects, EZ Price Alerts.

In my detail view, I added import ipdb; ipdb.set_trace() …

Using Docker and Docker Compose for local Django development (replacing virtualenv)

April 30, 2015

Before Docker came along, virtualenv was pretty much the tool of choice for Python developers as it allows you to separate package dependencies for different applications you're working on without having to create separate virtual machines for each one. It worked very well for me.

However, there are still some annoying things the developers will have to deal with. Such things include having to install additional applications and services required by the project such as …

Older