Cara Mengjalankan Python dalam Kontainer Docker

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

Docker Setting - Python

Apa itu Docker dan Mengapa Anda Harus Peduli?

Sebelum kita melompat ke hal-hal 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 menakjubkan jika Anda dapat mempack seluruh hal ini bersama dan membawa mereka ke mana saja? Itu adalah esensi 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, dan dapat berjalan pada semua mesin yang memiliki Docker terinstal. Ini berarti Anda dapat katakan goodbye kepada masalah "tetapi itu berjalan di mesin saya"!

Sekarang, mari kita mulai dan belajar bagaimana menjalankan Python dalam kontainer Docker.

Bagaimana menjalankan Python dalam Docker menggunakan Dockerfile?

Dockerfile adalah seperti resep untuk kontainer Docker Anda. Itu berisi set intruksi yang Docker gunakan untuk membangun image, yang kemudian digunakan untuk membuat kontainer. Mari kita buat Dockerfile sederhana untuk 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 kontainer di /app
COPY . /app

# Instal paket yang diperlukan seperti yang ditentukan dalam requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

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

# Definisikan 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 basis.
  2. WORKDIR /app: Mengatur direktori kerja dalam kontainer.
  3. COPY . /app: Menyalin direktori saat ini (termasuk script Python kita) ke kontainer.
  4. RUN pip install --no-cache-dir -r requirements.txt: Menginstal 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 untuk menjalankan saat kontainer mulai.

Sekarang, mari kita buat 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 mendefinisikan dan menjalankan aplikasi multi-kontainer Docker. Mari kita buat 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 terlihat seperti overkill, tapi itu bisa berguna dalam beberapa konteks. Mari kita modifikasi Dockerfile kita untuk termasuk 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 menginstal requirement kita.

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 dan akan membantu Anda dalam perjalanan pengembangan Python Anda.

Ingat, Docker tentang konsistensi dan portabilitas. Itu memungkinkan Anda untuk mempack aplikasi Python Anda bersama dengan semua dependensinya dan menjalankan mereka dimana saja Docker terinstal. Ini dapat mempersimplifikasi proses pengurusan dan kolaborasi.

Saat kita menyempurnakan, ini adalah tabel yang menggabungkan perintah Docker penting yang kita pelajari:

Perintah Deskripsi
docker build -t <image-name> . Membangun image Docker
docker run <image-name> Menjalankan kontainer Docker
docker-compose up Memulai layanan yang didefinisikan 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 hal-hal menakjubkan yang Anda buat. Selamat coding!

Credits: Image by storyset