Innovate anywhere, anytime withruncode.io Your cloud-based dev studio.
Server Management

How to Deploy Django Project into Docker Container

2022-07-20

Deploying app in containers as microservices has its own pro's and cons. For a good understanding of the role of Containers in MicroServices, Read this article. In this blog post we will look into deploying a sample Django app into a docker container.

Using Dockerfile:

Creating Sample Django project:

sudo apt-get install python-dev python-pip python-virtualenv
mkdir /webapps && cd /webapps
virtualenv env
source /webapps/env/bin/activate
pip install django
django-admin.py startproject testapp

now that you have a sample django project, copy /webapps/testapp to a folder called web where we will build Docker APP. the folder structure should be

-- <some-folder>
    |-- Dockerfile
    |-- web
       `--scripts
       |-- testapp
       |-- confs

You can prehandedly prepare a docker image that contains all your system apt/yum requirements or write a script that can install it on runtime and save it in scripts folder.

Prepare a <project-home>/scripts/project_setup.sh and give it execution permission and include your confs files like gunicorn, uwsgi, supervisor,nginx files. Build a shell script that does the rest of processing for you.

FROM ubuntu:latest

ENV APP_NAME=testapp
ENV DJANGO_SOURCE=web
ENV PROJECT_HOME=/webapps/$APP_NAME
RUN mkdir -p $PROJECT_HOME
COPY $DJANGO_SOURCE $PROJECT_HOME
RUN $PROJECT_HOME/scripts/project_setup.sh
ENTRYPOINT ["/<some-script that starts required services>"]

Build a Docker Image with below command:

docker build -t <image-name> .

Now Deploy your app with standard DOcker run command.

Docker run -d <image-name>

Happy Dockerizing!