2017-01-06 123 views
2

Docker新手,我試圖在Drupal 7項目上設置開發環境。我遇到這個錯誤,當我運行docker-compose up後參觀localhost:8080Docker數據庫連接錯誤 - SQLSTATE [HY000] [2002]

Error 

The website encountered an unexpected error. Please try again later. 
Error messagePDOException: SQLSTATE[HY000] [2002] No such file or directory in lock_may_be_available() (line 167 of /var/www/html/includes/lock.inc). 

它看起來像它有連接到我的數據庫的問題。當我運行docker ps -a時,我可以看到我的2個容器已啓動並正在運行,因此它們似乎構建得很好。我的問題是連接我的drupal容器到mysql容器。

這裏是我的泊塢窗,compose.yml文件:

version: '2' 

services: 

    drupal: 
    image: drupal:7.53-apache 
    container_name: app 
    volumes: 
     - ./:/var/www/html 
    ports: 
     - '8080:80' 
    links: 
     - mysql 

    mysql: 
    image: mysql:5.6.35 
    container_name: app_db 
    environment: 
     MYSQL_ROOT_PASSWORD: root 
     MYSQL_USER: root 
     MYSQL_PASSWORD: root 
     MYSQL_DATABASE: testdb 

我俯瞰別的東西,將連接兩個容器?任何和所有的幫助,不勝感激。謝謝!

回答

0

嘗試映射正確的端口和php DATABASE_HOST。對我來說這個工程:

db: 
    image: dev/mysql 
    ports: 
     - "3306:3306" 
    environment: 
     MYSQL_DATABASE: testdb 
     MYSQL_USER: root 
     MYSQL_PASSWORD: root 
php: 
    image: dev/alpine-nginx-php5.6 
    environment: 
     DATABASE_HOST: db 
    ports: 
     - "80:80" 
     - "443:443" 
    volumes: 
     - ./SRC:/var/www/ 
    links: 
     - db 

但我會建議你的數據庫存儲在碼頭集裝箱以外。如果你不得不重建或者它有一個致命的崩潰,一切都會被刪除。

+0

@hidace之前,我忘了問:你是否改變了你的配置settings.php裏面的Drupal。你必須使用「主機」=>「數據庫」或在你的情況下「主機」=>「MySQL」+所有的憑據 – Gabbax0r

相關問題