gpt4 book ai didi

mysql - docker-compose rails 与 mysql

转载 作者:可可西里 更新时间:2023-11-01 07:51:14 27 4
gpt4 key购买 nike

你好,我有一个大问题。我正在尝试在单独的 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

结束时,当我运行应用程序时出现错误:用户 'root'@'xxx' 的访问被拒绝(使用密码:YES) 其中 xxx 是 ip 我的机器而不是容器。请帮助我不知道该怎么做

最佳答案

你必须 link容器,这应该有效:

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 的别名容器。你应该到达 db来自 web 的容器使用此地址的容器:sql_srv:3306

您实际上不需要指定 portsdb容器,如果你只想连接你的 db容器到 web容器。属性 ports仅用于从主机到达容器。

关于mysql - docker-compose rails 与 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39907266/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com