Cara Membuat dan Mengelola Environment Variable di Docker
Environment variable di Docker digunakan untuk menyimpan konfigurasi aplikasi secara terpisah dari source code. Pendekatan ini merupakan praktik standar dalam DevOps karena meningkatkan keamanan, fleksibilitas deployment, dan kemudahan maintenance.
Contoh penggunaan environment variable meliputi penyimpanan nama database, username, password, API key, dan konfigurasi aplikasi lainnya tanpa perlu hardcode di dalam aplikasi.
Artikel ini membahas tiga metode utama dalam membuat environment variable di Docker, yaitu menggunakan parameter langsung, file environment, dan Docker Compose.
Apa Itu Environment Variable di Docker
Environment variable adalah variabel sistem yang tersedia di dalam container dan dapat diakses oleh aplikasi yang berjalan di dalamnya. Docker memungkinkan environment variable didefinisikan saat container dibuat, sehingga konfigurasi dapat disesuaikan untuk setiap environment seperti development, staging, atau production.
Keuntungan utama penggunaan environment variable di Docker antara lain:
-
Memisahkan konfigurasi dari aplikasi
-
Meningkatkan keamanan data sensitif
-
Memudahkan automasi dan CI/CD
-
Mendukung deployment multi-environment
Cara Pertama: Menggunakan Opsi -e atau --env
Cara paling sederhana untuk membuat environment variable adalah dengan mendefinisikannya langsung saat menjalankan container menggunakan parameter -e atau --env.
Menjalankan Container dengan Environment Variable
Contoh berikut menjalankan container bernama myapp dari image Python dengan tiga environment variable:
Pada contoh di atas, environment variable DB_NAME, DB_USER, dan DB_PASS langsung tersedia di dalam container.
Mengecek Environment Variable di Container
Untuk memastikan environment variable berhasil dibuat, gunakan perintah inspect:
Pada output inspect, akan terlihat bagian Env seperti berikut:
Cara lain yang lebih praktis adalah dengan menjalankan perintah env langsung di dalam container:
Hasilnya akan menampilkan seluruh environment variable yang tersedia di container, termasuk variabel yang dibuat secara custom.
Membaca Environment Variable di Aplikasi
Berikut contoh script Python sederhana untuk membaca environment variable dari dalam container.
Contoh Script Python
Buat file myenv.py:
Salin file tersebut ke dalam container:
Jalankan script di dalam container:
Jika konfigurasi benar, output akan menampilkan nilai environment variable sesuai yang didefinisikan.
Cara Kedua: Menggunakan Opsi --env-file
Untuk konfigurasi yang lebih rapi dan terstruktur, environment variable dapat disimpan dalam sebuah file. Metode ini sangat direkomendasikan untuk environment production.
Membuat File Environment
Buat file dengan nama myenv.txt:
Isi file dengan environment variable:
Menjalankan Container dengan Env File
Gunakan parameter --env-file saat membuat container:
Dengan metode ini, konfigurasi menjadi lebih terpusat dan mudah dikelola, terutama jika jumlah environment variable cukup banyak.
Cara Ketiga: Menggunakan Docker Compose
Docker Compose digunakan untuk menjalankan aplikasi yang terdiri dari banyak container. Environment variable di Docker Compose biasanya didefinisikan langsung di dalam file docker-compose.yml.
Contoh Environment Variable di Docker Compose
Berikut contoh potongan konfigurasi Docker Compose untuk container database MySQL:
Dengan konfigurasi ini, Docker Compose akan otomatis menyuntikkan environment variable ke dalam container database saat dijalankan.
Best Practice Penggunaan Environment Variable di Docker
Untuk penggunaan profesional dan production environment, beberapa praktik terbaik yang direkomendasikan antara lain:
-
Hindari menyimpan password langsung di source code
-
Gunakan file
.envatau secret manager untuk data sensitif -
Pisahkan konfigurasi untuk setiap environment
-
Kombinasikan dengan CI/CD untuk automasi deployment
Kesimpulan
Environment variable merupakan komponen penting dalam arsitektur aplikasi berbasis Docker. Dengan memanfaatkan environment variable, konfigurasi aplikasi menjadi lebih aman, fleksibel, dan mudah dikelola.
Docker menyediakan beberapa metode untuk mendefinisikan environment variable, mulai dari parameter langsung, file environment, hingga Docker Compose. Pemilihan metode dapat disesuaikan dengan skala aplikasi dan kebutuhan operasional.
Pendekatan ini sangat direkomendasikan dalam workflow DevOps modern dan lingkungan produksi.
.png)