因此,出于某些原因,当我运行cache:clear
时,我收到以下错误:
但是当我通过浏览器查看应用程序时,似乎可以很好地连接到数据库,因为当我使用不正确的数据编辑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
那么命令行抛出错误而不是浏览器中的应用程序的原因是什么?
答案 0 :(得分:3)
您应该在容器内启动命令,一个示例(可能是脚本):
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'"
希望这个帮助