我使用docker-compose为rails web应用程序运行本地测试环境。我在另一台计算机上运行此设置,但遇到另一台计算机上的问题。
这是docker撰写文件:
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密码不正确,但我已经验证它是正确的。有什么想法吗?
答案 0 :(得分:0)