2 回答

TA貢獻1811條經驗 獲得超4個贊
我在其中找到了一個包含環境變量的 XML 文件/usr/local/etc/php-fpm.conf
,并使用它填充了它dockerize
<value name="environment">
? ? <!-- Add docker environment variables -->
? ? {{ range $k,$v := .Env }}{{ $parts := split $k "APP_" }}{{ if eq (len $parts) 2 -}}
? ? <value name="{{ index $parts 1 }}">{{ $v }}</value>
? ? {{ end }}{{- end -}}
? ? <!-- End Docker Env -->
隨著 docker-compose 有
environment:
? ? APP_DB_HOST: mariadb:3306
? ? APP_DB_USER: ${DB_USER}
? ? APP_DB_PASSWORD: ${DB_PASSWORD}?
? ? APP_DB_DATABASE: ${DB_DATABASE}

TA貢獻1878條經驗 獲得超4個贊
最有可能的是這些環境在您正在使用的圖像中的某個地方被覆蓋。docker compose 允許定義啟動時運行的命令。因此,您可以在啟動時將環境變量覆蓋為您需要的任何內容:
command: bash -c "DB_HOST='mariadb:3306' && DB_USER='some_user ... & ./start_something.sh"
編輯:
正如評論提到的,php 要求所有環境都位于php-fpm.conf
. command:
對我來說很奇怪,但通過在docker compose 的同一語句中將所需的環境變量添加到此文件中,很容易解決問題。簡單echo "ENV_NAME" >> ..../php-fpm.conf
應該對你有幫助。
或者您可以修改 Dockerfile,以便您的映像具有簡單的 sh 腳本,該腳本會將所有環境變量轉儲到該 php 配置中。
我正在修改 mongo 配置,以便作為副本集工作 - 就像魅力一樣。
- 2 回答
- 0 關注
- 155 瀏覽
添加回答
舉報