我正在使用docker运行:
这是我的docker-compose.yaml文件:
version: '2'
services:
myapp:
image: 'bitnami/symfony:1'
ports:
- '8000:8000'
volumes:
- '.:/app'
environment:
- SYMFONY_PROJECT_NAME=backend
- MARIADB_HOST=mariadb
- MARIADB_PORT_NUMBER=3306
- MARIADB_USER=monty
- MARIADB_PASSWORD=monty
- MARIADB_DATABASE=test
container_name: symfony_container
depends_on:
- mariadb
mariadb:
image: 'bitnami/mariadb:10.3'
ports:
- '3306:3306'
environment:
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_DATABASE=test
- MARIADB_PORT_NUMBER=3306
- MARIADB_ROOT_USER=root
container_name: mariadb
我使用命令启动两个容器:
docker-compose up
将生成一个“后端”目录,表示Symfony安装。
在该目录中,我设法创建一个带有以下内容的实体:
php bin/console make:entity
但是,当我运行命令时:
php bin/console make:migration
我收到以下错误:
An exception occurred in driver: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
我猜该错误可能来自某些用户参数。
但是,当我运行命令时
docker-compose exec mariadb mysql -u monty -p
并输入密码“ monty”,我设法访问数据库,所以我不太明白为什么我的symfony容器不能。
如果我使用命令进入symfony容器:
docker exec -it symfony_container bash
此命令有效:
php bin/console make:entity
但是命令
php bin/console make:migration
返回以下错误:
An exception occurred in driver: SQLSTATE[HY000] [1049] Unknown database 'bitnami_myapp'
SQLSTATE[HY000] [1049] Unknown database 'bitnami_myapp'
SQLSTATE[HY000] [1049] Unknown database 'bitnami_myapp'
我编辑了Symfony容器内位于“ / app”的docker-compose.yml文件,它具有与上述docker-compose.yml文件完全相同的信息。
感谢您的回复!
您忘记添加以下环境变量:
- MARIADB_USER=monty
- MARIADB_PASSWORD=monty
在mariadb服务中。。
我试图重现您的环境,并且在添加以下环境变量后可以使用:
完整的docker-compose现在是:
version: '3.7'
services:
myapp:
image: 'bitnami/symfony:1'
ports:
- '8000:8000'
volumes:
- '.:/app'
environment:
- SYMFONY_PROJECT_NAME=backend
- MARIADB_HOST=mariadb
- MARIADB_PORT_NUMBER=3306
- MARIADB_USER=monty
- MARIADB_PASSWORD=monty
- MARIADB_DATABASE=test
container_name: symfony_container
depends_on:
- mariadb
mariadb:
image: 'bitnami/mariadb:10.3'
ports:
- '3306:3306'
environment:
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_DATABASE=test
- MARIADB_PORT_NUMBER=3306
- MARIADB_ROOT_USER=root
- MARIADB_USER=monty
- MARIADB_PASSWORD=monty
container_name: mariadb