Cara Membuat Environment Variable di Docker

Docker mengenal adanya environment variables untuk menyimpan variable konfigurasi, memisahkannya dari aplikasi. Misalnya, menyimpan informasi nama database, username, dan password.

*Cara Pertama: Memakai opsi -env, -e*

Pada saat membuat container, environment variable dapat langsung didefinisikan dengan memakai opsi /-env/ atau /-e/.

Membuat dan menjalankan container dengan myapp dari image python, didefinisikan juga tigas environment variable sekaligus yaitu DB_NAME, DB_USER, dan DB_PASS.

[INPUT]

1 docker run -t -d -e DB_NAME=mydb -e DB_USER=myuser -e DB_PASS=mypass –name myapp python

Menampilkan informasi detail container dengan inspect. Mengecek apakah environment variable yang didefinisikan ada di dalam container.

[INPUT]

1 docker inspect myapp | more  

Potongan informasi dari inspect, terdapat Env dan nama environment variable yang dibuat.

[INPUT]

1 2 3 4 5 6 …     “Env”: [     “DB_NAME=mydb”,     “DB_USER=myuser”,     “DB_PASS=mypass”, …                

Cara lain mengecek environment variable dengan menjalankan perintah /env/ di container.

[INPUT]

1 docker exec -t myapp env    

Contoh hasil perintahnya.

[INPUT]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=eaef0e69ab1c TERM=xterm DB_NAME=mydb DB_USER=myuser DB_PASS=mypass LANG=C.UTF-8 GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D PYTHON_VERSION=3.10.0 PYTHON_PIP_VERSION=21.2.4 PYTHON_SETUPTOOLS_VERSION=57.5.0 PYTHON_GET_PIP_URL=https://github.com/pypa/get-pip/raw/d781367b97acf0ece7e9e304bf281e99b618bf10/public/get-pip.py PYTHON_GET_PIP_SHA256=01249aa3e58ffb3e1686b7141b4e9aac4d398ef4ac3012ed9dff8dd9f685ffe0 HOME=/root    

Contoh script Python membaca environment variable, myenv.py

[INPUT]

1 2 3 4 5 6 7 8 9 import os   database = os.environ[‘DB_NAME’] username = os.environ[‘DB_USER’] password = os.environ[‘DB_PASS’]   print(“database: %s” % database) print(“username: %s” % username) print(“password: %s” % password)  

Copy file myenv.py ke container.

[INPUT]

1 docker cp myenv.py myapp:/  

Jalankan script myenv.py.

[INPUT]

1 docker exec -t myapp python myenv.py

Hasilnya.

[INPUT]

1 2 3 database: mydb username: myuser password: mypass  

*Cara Kedua: Memakai opsi –env-file*

Environment variable dapat disimpan di dalam file terlebih dahulu yang kemudian akan dipanggil saat membuat container.

Misalnya membuat file dengan nama myenv.txt.

[INPUT]

1 nano myenv.txt  

Lalu masukkan environment variable.

[INPUT]

1 2 3 DB_NAME=mydb DB_USER=myuser DB_PASS=mypass    

Membuat container dengan menyertakan environment variable file.

[INPUT]

1 docker run -t -d –env-file myenv.txt –name myapp python    

*Cara Ketiga: Memakai Docker Compose*

Docker Compose adalah Docker tool untuk menjalankan aplikasi yang membutuhkan banyak container. Misalnya, WordPress membutuhkan container MySQL dan container WordPress.

Contoh potongan file docker-compose.yml, terdapat environment variables MySQL.

[INPUT]

1 2 3 4 5 6 7 8 9 10 11 12 13 … services:   db:     image: mysql:5.7     volumes:       – db_data:/var/lib/mysql     restart: always     environment:       MYSQL_ROOT_PASSWORD: somewordpress       MYSQL_DATABASE: wordpress       MYSQL_USER: wordpress       MYSQL_PASSWORD: wordpress …

Selamat mencoba 🙂

Leave a Reply

Your email address will not be published.