2017-01-06 1 views
2

Docker를 처음 접했고 Drupal 7 프로젝트에서 개발 환경으로 설정하려고합니다. 내 데이터베이스에 연결하는 문제가 발생 것처럼Docker에서의 Drupal 데이터베이스 연결 오류 - 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-compose up를 실행 한 후 localhost:8080를 방문 할 때이 오류로 실행 해요. 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 전에 잊지 말고 : drupal의 settings.php에서 설정을 변경 했습니까? 당신은 "호스트"=> "db"를 사용하거나 귀하의 경우 "호스트"= ""mysql "+ 모든 자격 증명 – Gabbax0r

관련 문제