Gunakan Pengaman…
.env ini biasanya digunakan di aplikasi berbasis nodejs atau laravel untuk menyimpan semua secret variabel (DB location, DB username, DB password, email otentikasi variabel, dll ).
Karena .env ini biasanya ga di push ke repo, maka si .env ini di simpan di github secrets dan nanti saat build image akan di panggil oleh proses github actions. Berikut cara yang saya gunakan:
Caranya :
- Buat file .env, isikan dengan di bawah ini
HTTP_HOST=0.0.0.0
HTTP_PORT=3000
EMAIL_USER=contoh@example.com
EMAIL_PASS=passwordsicontoh
DB_HOST=192.168.3.1
DB_USERNAME=contohlagi
DB_PASSWORD=contohjuga
- Gunakan base64 untuk encode ke format yang bisa di baca github secrets
base64 .env > .env.64
. Untuk variable di atas hasil encode
SFRUUF9IT1NUPTAuMC4wLjAKSFRUUF9QT1JUPTMwMDAKRU1BSUxfVVNFUj1jb250b2hAZXhhbXBs
ZS5jb20KRU1BSUxfUEFTUz1wYXNzd29yZHNpY29udG9oCkRCX0hPU1Q9MTkyLjE2OC4zLjEKREJf
VVNFUk5BTUU9Y29udG9obGFnaQpEQl9QQVNTV09SRD1jb250b2hqdWdhCg==
Untuk decode gunakan base64 --decode .env.64 > .env.69
- Untuk di github actions, tambahkan step decode setelah checkout code
- name: checkout repo
uses: actions/checkout@v2
- name: decode .env from github secrets
env:
# sesuaikan dengan nama di github secret
DOT_ENV: ${{ secrets.ENCRYPTED_DOT_ENV }}
run: |
touch .env
echo "${DOT_ENV// /}" | base64 --decode > .env
Referensi:
damienaicheh - environment variables secrets github actions
stackoverflow - How to pipe a github secret variable into a file