pro*_*kpa 23 wordpress environment-variables docker docker-compose
我扩展了 Wordpress 图像以添加 XDebug、PHPUnit、composer 和 phpcs。
我的项目根目录如下所示:
docker-wordpress
Dockerfile
docker-compose.yml
.env
docker-compose.yml:
version: '3.7'
services:
db:
image: mysql:5.7
volumes:
- ./docker-mysql/db_data:/var/lib/mysql
restart: always
ports:
- "3306:3306"
env_file: .env
wordpress:
depends_on:
- db
image: progonkpa/mywordpress
ports:
- "80:80"
- "443:443"
restart: always
volumes:
- ./src:/var/www/html
env_file: .env
volumes:
db_data:
Run Code Online (Sandbox Code Playgroud)
此配置有效,但只是因为我显式添加了 env_file 声明,而我认为如果我遵循正确的约定,Docker 会自动获取该文件:根目录中的 .env 文件。
我实际上想删除 docker-compose.yml 中的 env_file 声明,但后来遇到了一些问题。
MySQL 容器日志:
database is uninitialized and password option is not specified
You need to specify one of MYSQL_ROOT_PASSWORD
Run Code Online (Sandbox Code Playgroud)
我似乎在第一次运行容器初始化时,与 mysql 相关的变量没有出现。.env 文件包含常用的 Wordpress 和 MySQL 变量:
MYSQL_DATABASE=wordpress
MYSQL_USER=wordpress
MYSQL_PASSWORD=wordpress
MYSQL_ROOT_PASSWORD=wordpress
WORDPRESS_DB_HOST=db:3306
WORDPRESS_DB_USER=wordpress
WORDPRESS_DB_PASSWORD=wordpress
Run Code Online (Sandbox Code Playgroud)
那么为什么我的变量没有到达我的容器呢?
BMi*_*tch 40
这里有两个地方可以使用变量:在 compose 文件本身内部,以及由docker-compose.
该.env文件将用于docker-compose调整命令本身的环境docker-compose。这对于 yaml 文件内需要扩展的变量或 compose 本身使用的变量很有用。有关后者的更多信息,请参阅compose CLI 变量文档。
在 yaml 内部定义env_file将从文件中获取环境变量并将它们注入到容器中。这使得它对您的应用程序可见,但不能用于您想要docker-compose扩展的 yaml 内的变量,因为变量扩展发生在env_file解析内容之前。
Docker-compose 需要显式定义所有内容,将其视为docker run parameter,它仅将这些配置或参数应用于 docker-compose 文件中定义的每个容器。
因此,如果 ENV 已经在 Dockerfile 中声明,那么应该避免覆盖 ENV,这就是为什么您需要为自己显式定义这些配置。
\n\n当我们构建 docker 时,我们在 docker-image 中设置了一些默认配置,但docker run command并docker-compose提供了覆盖这些配置的功能,以便在映像作为容器启动时生效。
\n\n\n\n\n服务定义包含应用于为该服务启动的每个容器的配置,就像将命令行参数传递给 docker 容器创建一样。同样,网络和卷定义类似于 docker network create 和 dockervolume\n create。
\n
环境文件
\n\n从文件添加环境变量。可以是单个值或列表。
\n\n\n\n\n如果您使用 指定了 Compose 文件
\n\ndocker-compose -f FILE,\n 中的路径env_file是相对于该文件所在目录的路径。环境部分中声明的环境变量会覆盖这些值\xe2\x80\x93,即使这些值为空或未定义,这也成立。
\n
env_file: .env\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
24031 次 |
| 最近记录: |