Symfony – 使用命令行时未知的MySQL服务器主机

所以出于某种原因,当我运行例如cache:clear我得到以下错误:

mysql错误

但是,当我通过浏览器查看应用程序,它似乎连接到数据库好,因为当我编辑不正确的数据parameters.yml它会在浏览器中引发错误,说它无法连接。

我使用docker,我有以下设置:

 php: image: zimmobe/php:5.6-apache-oraclelinux volumes: - ./:/var/www/project/ environment: - SYMFONY_ENV=dev - SYMFONY_DEBUG=1 - BASE_DIR=/var/www/project links: - mysql ports: - 3005:80 mysql: image: mysql:5.6 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: minecraftweb ports: - 3306:3306 

和我的parameters.yml看起来像这样:

 parameters: database_host: mysql database_port: 3306 database_name: minecraftweb database_user: root database_password: root mailer_transport: smtp mailer_host: 127.0.0.1 mailer_user: null mailer_password: null secret: ThisTokenIsNotSoSecretChangeIt 

那么,为什么命令行抛出一个错误,而不是在浏览器中的应用程序的任何原因?

您应该在容器中启动命令(一个可能的脚本):

 docker-compose \ -f docker-compose.yml \ run --rm --entrypoint bash php -c \ "id -u dockeruser &> /dev/null || useradd -r -g users -u $USER_ID --base-dir /tmp dockeruser && su dockeruser -c 'bin/console cache:clear'" 

希望这个帮助