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 关注
- 129 浏览
添加回答
举报