簡體   English   中英

docker-compose rails with mysql

[英]docker-compose rails with mysql

你好,我有很大的問題。 我試圖在單獨的docker容器上運行rails和mysql。 在docker-compose.yml我有:

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

並在我的rails 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

結束當我運行應用程序時我收到錯誤: Access denied for user 'root'@'xxx' (using password: YES)其中xxx是ip我的機器不是容器。 請幫助我不知道該怎么做

你必須鏈接容器,這應該工作:

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

現在, web容器鏈接到dbsql_srvdb容器的別名。 您應該使用以下地址從web容器訪問db容器: sql_srv:3306

如果只想將db容器連接到web容器,則實際上不需要在db容器中指定ports 屬性ports僅用於從主機到達容器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM