2016-11-11 94 views
1

所以,出於某種原因,當我運行例如cache:clear我收到以下錯誤:Symfony的 - 使用未知MySQL服務器主機時,命令行

mysql error

但是當我通過瀏覽器查看應用程序它似乎正確連接數據庫是因爲當我編輯具有不正確數據的parameters.yml時,它會在瀏覽器中引發一個錯誤,說它無法連接。

我使用的碼頭工人,我有以下設置:

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

你執行PHP的容器內的命令? – Matteo

+0

哦,這似乎工作得更好:D。我是碼頭工人。謝謝! – Christophe

+0

我在項目的文件夾中運行clear命令,但沒有在特定容器中運行。只是在終端 – Christophe

回答

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'" 

希望這有助於

相關問題