2016-10-06 3 views
2

Hallo ich habe ein großes Problem. Ich versuche rails und mysql auf separaten Docker-Containern auszuführen. in Docker-compose.yml ich habe:docker-compose rails mit mysql

version: '2' 
services: 
    db: 
    image: mysql 
    ports: 
     - "3307:3306" 
    environment: 
     MYSQL_ROOT_PASSWORD: zzz 
     MYSQL_USER: root 
     MYSQL_PASSWORD: zzz 
     MYSQL_DATABASE: zzz 
    web: 
    build: . 
    command: bundle exec rails s -p 3000 
    volumes: 
     - .:/app 
    ports: 
     - "3000:3000" 
    depends_on: 
     - db 

und in meinen Schienen database.yml

development: 
    adapter: mysql2 
    encoding: utf8 
    database: zzz 
    pool: 5 
    username: root 
    password: zzz 
    host: database.dev //this is host for container with mysql 
    port: 3306 

Ende, wenn ich Anwendung ausführen ich habe Fehler: Access denied for user 'root'@'xxx' (using password: YES) xxx meine Maschine nicht Behälter ip . Bitte helfen Sie, ich weiß nicht, was

+0

was ist mehr, wenn ich versuche, von meinem lokalen Rechner zugreifen (Rails s -p 9999 -> localhost: 9999) alles ist in Ordnung –

Antwort

4

Sie tun müssen, um die Behälter link, dies sollte funktionieren:

version: '2' 
services: 
    db: 
    image: mysql 
    ports: 
     - "3307:3306" 
    environment: 
     MYSQL_ROOT_PASSWORD: zzz 
     MYSQL_USER: root 
     MYSQL_PASSWORD: zzz 
     MYSQL_DATABASE: zzz 
    web: 
    build: . 
    command: bundle exec rails s -p 3000 
    volumes: 
     - .:/app 
    ports: 
     - "3000:3000" 
    links: 
    - db:sql_srv 
    depends_on: 
     - db 

Nun ist die web Behälter db verbunden ist und sql_srv ein Alias ​​für den db Behälter ist. Sie sollten den db Behälter aus dem web Behälter mit dieser Adresse erreichen: sql_srv:3306

Sie eigentlich nicht die ports im db Container angeben müssen, wenn Sie nur Ihre db Behälter zum web Behälter eine Verbindung herstellen möchten. Das Attribut ports wird nur verwendet, um den Container vom Host aus zu erreichen.

+0

Funktioniert perfekt. Du hast meinen Tag gerettet. Vielen Dank –

Verwandte Themen