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.
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
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>"]
docker build -t <image-name> .
Now Deploy your app with standard DOcker run command.
Docker run -d <image-name>
Happy Dockerizing!