-
Notifications
You must be signed in to change notification settings - Fork 0
G. Docker Compose
Docker Compose merupakan tool yang digunkan untuk mendefinisikan dan menjalankan aplikasi yang terdiri dari beberapa container secara sekaligus menggunakan file YAML. Docker Compose mempermudah dalam mengelola aplikasi yang terdiri dari berbagai layanan yang harus berinteraksi satu sama lain. Docker Compose berjalan di semua lingkungan; production, staging, development, pengujian, serta CI workflows. Docker Compose juga memiliki perintah untuk mengelola seluruh siklus hidup aplikasi:
- Start, stop, dan rebuild service.
- Melihat status layanan yang sedang berjalan.
- Stream log output dari layanan yang sedang berjalan.
- Menjalankan perintah satu kali pada sebuah layanan.
Step 1: Define the application dependencies
-
Membuat direktori
composetest:mkdir composetest cd composetest -
Buat file bernama
app.pydi direktori proyek dan copy kode berikut:import time import redis from flask import Flask app = Flask(__name__) cache = redis.Redis(host='redis', port=6379) def get_hit_count(): retries = 5 while True: try: return cache.incr('hits') except redis.exceptions.ConnectionError as exc: if retries == 0: raise exc retries -= 1 time.sleep(0.5) @app.route('/') def hello(): count = get_hit_count() return 'Hello World! I have been seen {} times.\n'.format(count)
Dalam contoh ini,
redisadalah nama host container redis di jaringan aplikasi. Port default Redis adalah6379. -
Buat file
requirements.txtdi direktori proyek Anda dan tempelkan kode berikut di:flask redis
Step 2: Create a Dockerfile
Buat Docker Image menggunakan Dockerfile.
# syntax=docker/dockerfile:1
FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
EXPOSE 5000
COPY . .
CMD ["flask", "run"]
Keterangan:
- Build image dengan base image Python 3.7.
- Set working direktori ke
/code. - Set environment variables yang digunakan oleh perintah
flask. - Install
gccdan dependensi lainnya. - Copy
requirements.txtand install Python dependensi. - Menambahkan port 5000
- Copy direktori saat ini
.ke dalam working direktori image. - Set default command untuk container untuk
flask run.
Step 3: Define services in a Compose file
Buat sebuah file bernama compose.yaml di direktori proyek Anda dan paste kode berikut:
services:
web:
build: .
ports:
- "8000:5000"
redis:
image: "redis:alpine"
File compose ini berisi dua layanan, yaitu web dan redis.
web services menggunakan Image yang dibuat dari file Dockerfile di direktori saat ini. Lalu, ia bind container dan host machine ke port 8000. Pada contoh ini menggunakan port default untuk server web Flask, 5000.
redis services menggunakan public Redis Image.
Step 4: Build and run your app with Compose
-
Start aplikasi dengan menjalankan perintah.
docker compose up -
Cek pada browser untuk melihat aplikasi yang sedang berjalan.
http://localhost:8000/atauhttp://127.0.0.1:8000
Modul 1
- Prerequisite
- Dasar Teori
- Installasi
- Membuat Virtualisasi
- Konfigurasi Resource Virtual Machine
- Cara Bermain
- Konfigurasi Internet Pada Virtual Machine
- Sinkronisasi Folder
- Provisioning Aplikasi Pada Virtual Machine
- Soal Latihan
- Referensi
Modul 2
- Dasar Teori
- Installasi
- Terminologi Dasar
- Simple Provisioning Vagrant dengan Ansible
- Provisioning Multiple VM dengan Ansible
- Soal Latihan
- Referensi
Modul 3
- Virtual Machine vs Container
- Docker Instalasi
- Docker
- Docker Image
- Docker Container
- Docker Volume
- Dockerfile
- Docker Compose
- Soal Latihan
- Referensi
Modul 4
Modul 5