Docker環境變數問題,例如,在Docker Hub上下載了一個nginx映像,現在要把我自己的設定檔用上去,看到說可以有三種方式:
1、用環境變數傳遞配置。
2、用資料卷,把設定檔放到資料卷中。
3、修改鏡像,儲存為新的鏡像。
現在,我想採用第1種方法,文件中關於環境變數的內容如下:
< img src="https://img.php.cn/upload/image/000/000/000/9079c30d15f76669f80dd93325a8d473-0.png">
可是怎麼配置,還是有點不清楚。
誰告訴你環境變數可以用來傳輸設定檔了…
可以用環境變數的意思是,有些軟體既能辨識環境變數中提供的配置,又能辨識檔案形式的配置,不過,很不幸,Nginx不在此列。
以wget為例,設定HTTP代理程式時,可以選用以下任一方式:
在設定檔中加一行
http_proxy = http://example.com/xxx
將系統環境變數
$http_proxy
设定为http://example.com/xxx
兩種方法的作用是相同的。
當然,你可以在Docker容器裡寫一個Shell腳本,根據環境變數來修改設定檔的內容,但這就是另一個主題了。 Github上有不少實現類似功能的工具,如Tiller。
補充一個資料:How Should I Get Application Configuration into my Docker Containers?
哦,在啟動容器的時候要帶參數,例如:
./docker run --detach --name wordpress --net wordnet --publish 80:80 --env WORDPRESS_DB_HOST=mysql --env WORDPRESS_DB_PASSWORD=xxxPRESS_DB_HOST=mysql --env WORDPRESS_DB_PASSWORD=xxx xxxxxx 4.4
當然在容器啟動指令裡要處理帶進來的參數:
cat /entrypoint.sh