2016-08-12 17 views
5

Buduję 2 kontener dokowy z funkcją dokowania. Używam Docker na Macu, bez boot2dockera.Sequel Pro z MySQL w Dockerze

version: '2' 
    services: 
     drupal-web: 
      image: drupal:latest 
     ports: 
      - "8080:80" 
    depends_on: 
      - mysql-server 
    links: 
      - mysql-server:mysql 
    mysql-server: 
     image: mysql 
    environment: 
     MYSQL_DATABASE: drupal 
     MYSQL_ROOT_PASSWORD: root 
     MYSQL_USER: drupal 
     MYSQL_PASSWORD: drupal 

Wszystko działa poprawnie. Z powodzeniem instaluję Drupala.

Problem polega na tym, że chciałbym podłączyć SequelPro do mojego DB, ale nie mam połączenia z kontenerem mysql. Jestem początkującym w doku. Dzięki za pomoc Micha

Odpowiedz

0

powinien wyglądać nieco więcej tak:

version: '2' 
services: 
    mysql-server: 
     image: mysql 
     environment: 
      MYSQL_ROOT_PASSWORD: root 
      MYSQL_DATABASE: drupal 
      MYSQL_USER: drupal 
      MYSQL_PASSWORD: drupal 

    drupal-web: 
     image: drupal:latest 
     ports: 
      - "8080:80" 
     depends_on: 
      - mysql-server 
     links: 
      - mysql-server:mysql-server 
     environment: 
      MYSQL_DATABASE: drupal 
      MYSQL_USER: drupal 
      MYSQL_PASSWORD: drupal 

(nie jestem pewien, czy definiowania zmiennych środowiskowych na pracę na poziomie globalnym, może ktoś, kto wie, może poprawić moją odpowiedź tutaj i uprościć to)

Jak widać, masz 2 usługi, mysql-server i drupal-web. Drupal-web łączy twoją bazę danych. Obie usługi mają swoje własne zmienne środowiskowe.

+0

moja praca plik w porządku, jedynym problemem jest to, że nie mogę dotrzeć do mojego DB z zewnątrz. – freemindghost

+0

Ten sam problem tutaj, nadal nie znalazłem powodu ... Masz jakieś wieści? – Charaf

9

Zapomniałeś narazić swój port DB dla gospodarza, tak po prostu dodać

mysql-server: 
    image: mysql 
    ports: 
     - "3306:3306" 
    environment: 
     MYSQL_ROOT_PASSWORD: root 
     MYSQL_DATABASE: drupal 
     MYSQL_USER: drupal 
     MYSQL_PASSWORD: drupal 

a następnie połączyć się z bazą danych w sequal używając:

user: root 
password: root 
host: localhost 
port: 3306 

Jeśli masz lokalną funkcjonowanie bazy mysql już zmień port

ports: 
    - "4306:3306" 

, a następnie podłącz do portu 4306 zamiast o f 3306. Bądź świadomy, z drupal pojemniku, będzie nadal korzystać 3306

+0

Jawnie ujawniając port 3306, pozwolił mi uzyskać do niego dostęp z sequel pro z mojego mac. Byłem nieco zaskoczony, że domyślnie nie był on jeszcze eksponowany – DDS

4

portu hosta Mapa 4306 (lub inny dostępny port) do dokowanym mysql 3306 takich jak:

mysql-server: 
     image: mysql 
    environment: 
     MYSQL_DATABASE: drupal 
     MYSQL_ROOT_PASSWORD: root 
     MYSQL_USER: drupal 
     MYSQL_PASSWORD: drupal 
    ports: 
     - "4306:3306" 

Powinieneś być w stanie połączyć się dokowanym mysql z 127.0.0.1:4306

mysql -u drupal -h 127.0.0.1 -P 4306 -p 
0

w moim przypadku ma problem z mysql: 8, zmiana jakiegokolwiek 5 i wszystko jest ok

Powiązane problemy