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,或者它有一个致命的崩溃,一切都被删除。