Framework saat ini sudah sangat luas, dengan berbagai bahasa di dalamnya, seperti C++, Python dan lainnya. Selain itu, rata-rata framework tersebut open-source atau free. Sehingga dapat digunakan secara bebas dan dimodifikasi sesuai kebutuhan pada aplikasi yang akan dibuat nantinya.
Pada artikel ini akan membahas mengenai Cara Deploy Django ke Docker.
Django
Django adalah salah satu Web Framework berbasis Python yang di design untuk dapat membuat aplikasi yang dinamis.
Docker
Docker adalah teknologi yang dapat membuat kita mudah membuat, deploy, and menjalankan aplikasi dengan menggunakan container. Container ini dapat menjalankan aplikasi yang berbeda di satu server yang sama.
Penerapan Docker ini biasa dilakukan developer yang memiliki beberapa project atau ingin melakukan test deploy.
Persyaratan
Sebelum memulai proses instalasi cara deploy django ke docker kamu harus memastikan memiliki beberapa persyaratan di bawah ini.
- Memiliki server dengan CentOS 7.
- Memiliki akses sebagai root.
Langkah-Langkah Deploy Django ke Docker
Berikut ini langkah-langkah untuk deploy Sjango ke Docker:
Step 1 – Install Docker
Untuk instalasi Docker kamu bisa ikuti referensi pada artikel Cara Install Docker di CentOS 7.
Step 2 – Install SCL & epel-release
Kamu harus install centos scl dan repo epel-release terlebih dahulu dengan perintah di bawah ini.
SCL
SCL atau Software Collections adalah community project yang mengizinkan kamu untuk membuat, menginstall, dengan menggunakan multiple versi software atau aplikasi dalam satu system atau server.
$ yum install centos-release-scl epel-release -y
Step 3 – Install Python
Karena kamu sudah memiliki akses SCL, kamu bisa install Python 3.x sesuai kebutuhan kamu.
Versi yang tersedia:
- Python 3.3
- Python 3.4
- Python 3.5
- Python 3.6
$ yum install rh-python36
Kalau package rh-python36 sudah terinstall, saat melakukan pengecekan versi python masih akan ditunjukan sebagai python 2.7 seperti di bawah ini.
$ python –version
Python 2.7.5
Aktifkan SCL untuk mengizinkan kamu menggunakan Python 3.6.
$ scl enable rh-python36 bash
Kemudian perintah tersebut akan memanggil script /opt/rh/rh-python36/enable, yang mana akan merubah shell environment variable kamu. Kemudian cek kembali versi Pythonnya.
$ python –version
Python 3.6.9
Kemudian cek versi Python dengan menggunakan perintah berikut.
$ /usr/local/bin/python2.7 -V
Python 2.7.16
Step 4 – Install Pip
Kamu memerlukan instalasi Python pip menggunakan perintah di bawah ini.
$ yum install python-pip -y
Kemudian cek versi pip nya.
$ pip -V
pip 9.0.1 from /opt/rh/rh-python36/root/usr/lib/python3.6/site-packages (python 3.6)
Baca Juga: Panduan Lengkap Cara Membuat Website yang Baik dan Benar
Step 5 – Install Django
Disini kami akan menginstal Django.
$ pip install django
Step 6 – Build Django App
Buat aplikasi Django terlebih dahulu.
$ django-admin startproject dewadjango
Buat file requirement di dalam directory dewadjango.
$ cd dewadjango/
$ nano requirements.txt
Tambahkan script di bawah ini pada file requirements tersebut.
Django==2.1.5
gunicorn==19.9.0
Step 7 – Create Dockerfile
Kamu perlu membuat Dockerfile dengan base image sesuai dengan versi Python yang kamu install.
$ nano Dockerfile
FROM python:3.6
WORKDIR /app
COPY requirements.txt ./
RUN pip install –no-cache-dir -r requirements.txt
EXPOSE 8000
CMD exec gunicorn dewadjango.wsgi:application –bind 0.0.0.0:8000 –workers 3
Step 8 – Docker Build
Setelah kamu membuat Dockerfile, kemudian jalankan.
$ docker build -t django .
Sending build context to Docker daemon 17.41kB
Step 1/7 : FROM python:3.6
—> 971c66f6a27f
Step 2/7 : ADD . /app
—> fbf039e26632
Step 3/7 : WORKDIR /app
—> Running in a362b0d30d3a
Removing intermediate container a362b0d30d3a
—> 835b19e88791
Step 4/7 : COPY requirements.txt ./
—> 4ba8769b3f3a
Step 5/7 : RUN pip install –no-cache-dir -r requirements.txt
—> Running in c3b7f2a385df
Collecting Django==2.1.5
Downloading Django-2.1.5-py3-none-any.whl (7.3 MB)
Collecting gunicorn==19.9.0
Downloading gunicorn-19.9.0-py2.py3-none-any.whl (112 kB)
Collecting pytz
Downloading pytz-2019.3-py2.py3-none-any.whl (509 kB)
Installing collected packages: pytz, Django, gunicorn
Successfully installed Django-2.1.5 gunicorn-19.9.0 pytz-2019.3
Removing intermediate container c3b7f2a385df
—> 813907f6f6dd
Step 6/7 : EXPOSE 8000
—> Running in eb56cad6f8b7
Removing intermediate container eb56cad6f8b7
—> 512120c34a3b
Step 7/7 : CMD exec gunicorn dewadjango.wsgi:application –bind 0.0.0.0:8000 –workers 3
—> Running in d1760fd341d1
Removing intermediate container d1760fd341d1
—> 2e64e6793110
Successfully built 2e64e6793110
Successfully tagged django:latest
Artinya adalah kamu sudah berhasil membuat image docker bernama django.
Namun, saat kamu jalankan perintah build docker dan mendapatkan error seperti di bawah ini.
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘NewConnectionError(‘<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f3b91e1ad30>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution’,)’: /simple/django/
Maka solusinya kamu perlu restart services docker.
$ service docker restart
Kemudian jalankan ulang perintah buildnya.
Untuk melakukan pengecekan docker image dapat menggunakan perintah di bawah ini.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
django latest 2d988f652b40 50 seconds ago 941MB
Baca Juga: Mengubah Bahasa Moodle menjadi Bahasa Indonesia
Step 9 – Running Container
Jalankan aplikasi kamu di dalam container dengan menggunakan perintah berikut.
$ sudo docker run -d –name django -p 8000:8000 django
4140560d507a87ba2a82046d6bfdb5269d3a98b119476c48032ec4d223d46fb5
Perintah di atas menjalankan container dengan nama django dan mengeksposnya ke port 8000.
Kemudian kamu bisa cek docker container yang kamu jalankan dengan mengakses URLnya sesuai dengan port yang di expose: http://IP-Server:8000
Kesimpulan
Tampilan di atas ini menandakan bahwa kamu telah berhasil melakukan deploy aplikasi Django ke Docker Container.
Demikian artikel ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb. Semoga artikel ini membantu!