Cara Menjalankan Python dalam Sebuah Kontainer Docker

Hai teman-teman pemula pengembang Python! Saya sangat gembira menjadi panduan Anda dalam perjalanan yang menarik ke dunia Docker dan Python. Sebagai seseorang yang telah mengajar ilmu komputer selama bertahun-tahun, saya bisa katakan bahwa penggabungan teknologi ini dua yang kuat dapat menjadi perubahan besar dalam alur kerja pengembangan Anda. Mari kita masuk dan jelajahi bagaimana kita dapat menjalankan Python dalam sebuah kontainer Docker!

Docker Setting - Python

Apa Itu Docker dan Mengapa Anda Harus Menyadari?

Sebelum kita masuk ke hal yang teknis, mari kitaambil sedikit waktu untuk memahami apa itu Docker dan mengapa itu sangat penting. Bayangkan Anda sedang membuat kue. Anda memiliki resep ( kode Anda), bahan ( dependensi Anda), dan alat dapur ( lingkungan pengembangan Anda). Apakah tidak menarik jika Anda dapat mempack semua hal ini bersama-sama dan membawa mereka kemana-mana? Itu sebenarnya apa yang Docker lakukan untuk proyek Python Anda!

Docker memungkinkan Anda untuk membuat, menjalankan, dan menjalankan aplikasi dalam kontainer. Kontainer ini ringan, portabel, dan konsisten lingkungan yang dapat berjalan di mana saja dengan Docker terpasang. Ini berarti Anda dapat katakan goodbye ke masalah "tapi itu bekerja di mesin saya" yang tak terhindarkan!

Sekarang, mari kita merabaikan tangan dan belajar bagaimana menjalankan Python dalam sebuah kontainer Docker.

Bagaimana menjalankan Python dalam Docker menggunakan Dockerfile?

Sebuah Dockerfile adalah seperti resep untuk kontainer Docker Anda. Ini berisi set intruksi yang Docker gunakan untuk membangun sebuah image, yang kemudian digunakan untuk membuat sebuah kontainer. Mari kita buat sebuah Dockerfile sederhana untuk sebuah aplikasi Python:

# Gunakan image Python resmi sebagai image induk
FROM python:3.9-slim

# Set direktori kerja dalam kontainer
WORKDIR /app

# Salin isi direktori saat ini ke dalam kontainer di /app
COPY . /app

# Install paket yang diperlukan yang ditentukan di requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Buat port 80 tersedia ke dunia luar kontainer ini
EXPOSE 80

# Tentukan variabel lingkungan
ENV NAME World

# Jalankan app.py saat kontainer dimulai
CMD ["python", "app.py"]

mari kitauraikan ini:

  1. FROM python:3.9-slim: Ini memberitahu Docker untuk menggunakan image Python 3.9 sebagai dasar.
  2. WORKDIR /app: Mengatur direktori kerja dalam kontainer.
  3. COPY . /app: Menyalin direktori saat ini (termasuk skrip Python kita) ke dalam kontainer.
  4. RUN pip install --no-cache-dir -r requirements.txt: Menginstall paket Python yang diperlukan.
  5. EXPOSE 80: Menjadikan port 80 tersedia ke luar kontainer.
  6. ENV NAME World: Mengatur variabel lingkungan.
  7. CMD ["python", "app.py"]: Menentukan perintah yang dijalankan saat kontainer mulai.

Sekarang, mari kita buat sebuah file app.py sederhana:

import os
name = os.environ.get('NAME', "World")
print(f"Hello, {name}!")

Untuk membangun dan menjalankan kontainer Docker ini, gunakan perintah ini:

docker build -t my-python-app .
docker run my-python-app

Dan voilà! Anda seharusnya melihat "Hello, World!" dicetak di konsol Anda.

Bagaimana menjalankan Python menggunakan Docker Compose?

Docker Compose adalah seperti pengarah untuk orkestra Docker Anda. Itu memungkinkan Anda untuk menentukan dan menjalankan aplikasi multi-kontainer Docker. Mari kita buat sebuah file docker-compose.yml untuk aplikasi Python kita:

version: '3'
services:
web:
build: .
ports:
- "5000:80"
volumes:
- .:/app
environment:
- NAME=Docker Compose

File ini memberitahu Docker Compose untuk:

  1. Bangun image menggunakan Dockerfile kita.
  2. Map port 5000 di host kita ke port 80 di kontainer.
  3. Mount direktori saat ini ke /app di kontainer.
  4. Set variabel lingkungan NAME ke "Docker Compose".

Untuk menjalankan ini, cukup gunakan:

docker-compose up

Bagaimana menjalankan Python dalam lingkungan virtual dalam Docker?

Menjalankan Python dalam lingkungan virtual dalam kontainer Docker mungkin tampak seperti overkill, tetapi itu dapat berguna dalam beberapa konteks. Mari kita modifikasi Dockerfile kita untuktermasuk lingkungan virtual:

FROM python:3.9-slim

WORKDIR /app

COPY requirements.txt .

RUN python -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"

RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["python", "app.py"]

Dockerfile ini membuat lingkungan virtual di /opt/venv, mengaktifkannya, dan kemudian menginstall requirements.

Kesimpulan

Selamat! Anda baru saja belajar bagaimana menjalankan Python dalam kontainer Docker menggunakan Dockerfiles, Docker Compose, dan bahkan dengan lingkungan virtual. Ini adalah keterampilan yang kuat yang akan mendukung Anda dalam perjalanan pengembangan Python Anda.

Ingat, Docker tentang konsistensi dan portabilitas. Itu memungkinkan Anda untuk mempack aplikasi Python Anda bersama semua dependensinya dan menjalankan mereka dimana saja Docker dipasang. Ini dapat sangat menyederhanakan proses penyebaran dan kolaborasi.

Saat kita mengakhiri, ini adalah tabel yang menggabungkan perintah Docker utama yang kita pelajari:

Perintah Deskripsi
docker build -t <image-name> . Membangun sebuah image Docker
docker run <image-name> Menjalankan sebuah kontainer Docker
docker-compose up Memulai layanan yang ditentukan di docker-compose.yml
docker-compose down Menghentikan dan menghapus kontainer, jaringan, image, dan volume

Tetap latih, tetap jelajahi, dan terutama, tetap bersenang-senang dengan Python dan Docker! Ingat, setiap master pernah menjadi pemula. Perjalanan Anda baru saja dimulai, dan saya tidak sabar untuk melihat apa saja yang menarik yang Anda buat. Selamat coding!

Credits: Image by storyset