2017-11-30 2 views
0

symfony에서 내 도커 컨테이너로 스키마를 업데이트하려고합니다.Sf3 도커 작성 : [2002] 연결이 거부되었습니다.

version: "3" 
services: 
    web: 
     image: nginx:latest 
     ports: 
      - "3636:80" 
     volumes: 
      - .:/code 
      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf 
     links: 
      - php 

    php: 
     build: ./docker/engine 
     links: 
      - db:mysql 
     volumes: 
      - .:/code 
    db: 
     image: mysql:5.7 
     ports: 
      - "3306:3306" 
     expose: 
      - "3306" 
     volumes: 
      - db_data:/var/lib/mysql 
     environment: 
      MYSQL_ROOT_PASSWORD: root 
      MYSQL_USER: xxx 
      MYSQL_PASSWORD: xxx 
      MYSQL_DATABASE: xxx 

    phpmyadmin: 
     image: phpmyadmin/phpmyadmin 
     links: 
      - db:mysql 
     ports: 
      - 76:80 
     environment: 
      MYSQL_USERNAME: root 
      MYSQL_ROOT_PASSWORD: root 

volumes: 
    db_data: 
: phpMyAdmin을 가진

[PDOException]
SQLSTATE [HY000] [2002] 연결이 거부

내 고정 표시기-작성 작업 네 :

는 PDO 예외를 가지고

내 매개 변수 .yml :

database_host: db 
database_port: 3636 
database_name: xxx 
database_user: xxx 
database_password: xxx 

더 이상 이해가 안됩니다! 당신의 도움에 대한 들으

답변

1

노출 및 데이터베이스 컨테이너에서 사용하는 포트는 그래서 parameters.yml에 희망이 도움을

database_port: 3306 

대신

database_port: 3636 

시도 3306 입니다

+0

Oh sh **! Thx 정말 도움이됩니다 – darkiron

+0

안녕하세요 @ darkiron 당신은 오신 것을 환영합니다 :) – Matteo

0

당신의 nginx는 3636에서 작업하고, 3306에서 작업하는 db는 3636에서 3306으로 parameters.yml의 database_port를 변경합니다. 코드는 부두 노동자 내부에 살고 -

 ports: 
     - "3306:3306" 

을 제거하고 강철은 MySQL과 전용 부두 노동자 내부의 다른 서비스 (3306)를 노출합니다.

관련 문제