Docker的Drupal数据库连接错误 – SQLSTATE

新来的Docker,我试图build立一个Drupal 7项目的开发环境。 运行docker-compose up之后,当我访问localhost:8080时遇到了这个错误:

 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个容器已经启动并正在运行,所以它们似乎构build得很好。 我的问题是连接我的Drupal容器到MySQL容器。

这是我的docker-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 

我可以忽略其他连接两个容器的东西吗? 任何和所有的帮助,不胜感激。 谢谢!

尝试映射正确的端口和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 

但是我build议将你的数据库存储在docker-container之外。 如果你不得不重build,或者它有一个致命的崩溃,一切都被删除。