【发布时间】:2018-04-06 19:35:11
【问题描述】:
我正在使用 docker-compose 为 Rails Web 应用程序运行本地测试环境。我在另一台计算机上运行此设置,但在另一台计算机上遇到问题。
这是 docker compose 文件:
version: '2'
services:
railsdev:
build: ./
image: railsdev
depends_on:
- db
ports:
- 8080:8080
networks:
testing_net:
ipv4_address: 172.28.1.5
volumes:
- /c/Users/my_user/Documents/directory:/mount_dir
db:
build: ./mysql
image: mysqldev
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: db
networks:
testing_net:
ipv4_address: 172.28.1.3
networks:
testing_net:
ipam:
driver: default
config:
- subnet: 172.28.0.0/16
出于隐私考虑,我更改了其中一些值。
这是我的 mysql DockerFile:
FROM mysql
ENV MYSQL_DATABASE=db
ENV MYSQL_ROOT_PASSWORD=root
ENV MYSQL_HOST=localhost
ENV MYSQL_PORT=3306
ENV MYSQL_USER=user
ENV MYSQL_PASSWORD=password
COPY transfer.sql /docker-entrypoint-initdb.d
EXPOSE 3306
CMD ["mysqld"]
最后是我的 rails DockerFile:
FROM ruby:2.3.3
WORKDIR ./
ENV DATABASE_URL=mysql2://172.28.1.3
ENV RAILS_ENV=development
COPY Gemfile Gemfile
COPY Gemfile.lock Gemfile.lock
RUN bundle install
EXPOSE 8080
CMD ["sh", "-c", "cd mount_dir;bundle exec rake db:migrate;bundle exec rails s -b 0.0.0.0 -p8080"]
通常,我运行 docker-compose up --build 来构建和启动这些容器,并且一切都正确连接。我设置了 Rails DockerFile 来迁移数据库,并且卷安装正确。但是,我收到因 'root'@'172.28.1.5' 错误而拒绝访问。通常这意味着 root 密码不正确,但我已经验证它是正确的。有什么想法吗?
【问题讨论】:
标签: mysql ruby-on-rails docker docker-compose