Docker的新手,我试图在Drupal 7项目上设置为开发环境。我在运行localhost:8080
后访问docker-compose up
时遇到此错误:
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容器。
这是我的 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
我是否忽略了连接两个容器的其他东西?非常感谢任何和所有的帮助。谢谢!
答案 0 :(得分: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
但我建议将数据库存储在docker-container之外。如果你必须重建或它有致命的崩溃,一切都将被删除。