Ivi*_*ski 5 php environment-variables laravel docker docker-compose
该问题与在 Docker 容器中运行的 Laravel 项目有关,但适用于任何类型的项目和任何类型的容器,因为 .env 文件在所有平台上都很常见。
更改文件中的变量值后.env,在 docker 容器内运行的项目不会看到更改,并且仍使用以前的值运行。在 Laravel 中,有一些命令可以清除缓存的配置,但这似乎不会更改正在运行的容器内的值。即使使用--force-recreateflag 运行 docker-compose 也不会更新容器 .env 值。所以基本上,以下任何一项都不起作用:
docker exec -it container_name php artisan config:clear
docker exec -it container_name php artisan cache:clear
docker-compose run --build --force-recreate
在正在运行的 Docker 容器中更新环境变量值的正确方法是什么?
如果执行以下操作,您应该会看到容器中的更改:
创建一个包含一些内容的 .env 文件。
然后创建这个 docker-compose.yml:
version: '3.7'
services:
tmp:
image: alpine
container_name: SomeContainer
volumes:
- ./.env:/root/.env:rw
command: ["sleep", "300d"]
Run Code Online (Sandbox Code Playgroud)
启动后
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
更改 .env 文件后,更改应立即反映在容器中。
| 归档时间: |
|
| 查看次数: |
2757 次 |
| 最近记录: |