Deploy Docker

Adib yusril Wafi
sinadin
Published in
2 min readMay 1, 2019

Docker

Docker merupakan sebuah platform yang menyediakan sebuah layanan dimana kita dapat membangun dan menjalankan sebuah aplikasi dengan mudah.

Docker mengembangkan dan menjalankan aplikasi dengan menggunakan container. Container ini sendiri memungkinkan developer mengemas sebuah aplikasi dengan semua bagian yang dibutuhkan seperti library dan dependency lainnya yang dikemas menjadi satu yang nantinya dapat dijalankan pada berbagai macam environment yang berbeda.

Ada 3 hal mendasar yang ada pada docker, yaitu Docker Registry, Docker Image, dan Docker Container.

Docker Registry

Docker Registry adalah sebuah repository yang berfungsi menyimpan, mengambil, dan mendistribusikan Docker Image. Jika diibaratkan, maka Docker Registry adalah GitHub/GitLab untuk Docker Image.

Pulling Docker Image from Registry

Docker Image

Docker Image dapat berupa kode, dependencies, library, atau bahkan operating system, dsb. yang terkait dengan fungsionalitas yang akan menentukan bentuk dari Docker Container. Docker image dibuat dari file bernama Dockerfile. Dockerfile berisi command-command atau langkah-langkah yang diperlukan dalam pembuatan sebuah Docker Image.

Snippet Dockerfile

Docker Container

Container adalah hasil dari Docker Image. Container hampir mirip dengan sebuah Virtual Machine(VM) yang menjalankan aplikasi dan dependencies-nya. Container muncul dan berjalan ketika Docker Image dijalankan menggunakan command docker run image_name. Aplikasi nantinya akan dijalankan pada container.

Deployment

Continuous Integration

Continuous Integration atau CI ialah proses integrasi kode yang telah dibuat oleh developer di dalam repositori bersama dengan tujuan untuk memudahkan dalam pendeteksian error sehingga perbaikan dapat lebih cepat diatasi.

SINADIN melakukan stage testing yang akan dilakukan setiap kali terjadi push ke dalam sebuah branch. Testing dilakukan dengan men-setup environtment terlebih dahulu seperti composer install dan generate key laravel, dan kemudian melakukan seeding data. Testing juga memberikan code coverage untuk memberikan informasi berapa coverage test yang sudah dilakukan developer.

Script for Test staging

Deploy & Orchestration

Flow program SINADIN menggunakan docker dapat disingkat sebagai berikut:

  1. Kode akan dipush ke Gitlab
  2. gitlab-ci.yml akan menjalankan script testing
  3. Dockerfile akan menjalankan script untuk build image docker

--

--