与db的连接中断;docker-compose ruby​​&mysql images-在读取通信数据包时出错

Emb*_*ssa 5 mysql ruby-on-rails docker dockerfile docker-compose

我正在使用docker-compose使用mysql db docker镜像运行Rails应用程序。

泊坞窗,撰写构建云罚款; 即使有一些警告(mysql映像版本问题),docker-compose up也可以正常运行

...
db_1 | MySQL init process done. Ready for start up.
db_1 | [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
...
db_1 | [Warning] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1 | [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
db_1 | [Warning] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1 | Version: '5.7.10' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)
db_1 | Version: '5.7.10' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)
web_1 | [2016-02-11 18:38:10] INFO WEBrick 1.3.1
web_1 | [2016-02-11 18:38:10] INFO ruby 2.2.0 (2014-12-25) [x86_64-linux]
web_1 | [2016-02-11 18:38:10] INFO WEBrick::HTTPServer#start: pid=1 port=3000
Run Code Online (Sandbox Code Playgroud)

当我在另一个终端上运行迁移命令docker-compose运行web rake db:create | migrate时,在当前终端(docker-compose up)中出现此错误:

db_1 | [Note] Aborted connection 2 to db: 'unconnected' user: 'root' host: '172.17.0.4' (Got an error reading communication packets)
...
db_1 | [Note] Aborted connection 3 to db: 'unconnected' user: 'root' host: '172.17.0.4' (Got an error reading communication packets)
Run Code Online (Sandbox Code Playgroud)

这是我的Dockerfile

FROM ruby:2.2.0
RUN apt-get update -qq && apt-get install -y build-essential
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
ADD . /myapp
EXPOSE 3000
Run Code Online (Sandbox Code Playgroud)

这是我的docker-compose.yml

    db:
  image: mysql:latest
  environment:
    MYSQL_ROOT_PASSWORD: password
web:
  build: .
  command: bundle exec rails s -p 3000 -b '0.0.0.0'
  volumes:
    - .:/myapp
  ports:
    - "3000:3000"
  links:
    - db
Run Code Online (Sandbox Code Playgroud)

这是我的database.yml

default: &default
  adapter: mysql2
  pool: 5
  encoding: utf8
  host: db
  username: root
  password: password    
development:
  <<: *default
  database: myapp_development
test:
  <<: *default
  database: myapp_test
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参见整个方案