【发布时间】:2021-03-21 11:31:16
【问题描述】:
我在尝试让 docker-compose 包含 Rails API 和 MySQL 等时遇到问题。
在 docker-compose up 并向 Rails API 发送请求后,我收到此错误
"#<Mysql2::Error::ConnectionError: Can't connect to MySQL server on 'database' (111 \"Connection refused\")>"
我的 docker-compose
services:
database:
image: mysql:8.0.23
restart: always
volumes:
- 'db_data:/var/lib/mysql'
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USERNAME: root
MYSQL_PASSWORD: root
app:
build: .
restart: always
depends_on:
- 'database'
- 'redis'
ports:
- '3000:3000'
volumes:
- '.:/app'
- 'gem_cache:/usr/local/bundle/gems'
env_file: .env
environment:
RAILS_ENV: development
数据库.yml
default: &default
adapter: mysql2
encoding: utf8
host: <%= ENV['DATABASE_HOST'] %>
port: <%= ENV['DATABASE_PORT'] || '5432' %>
username: <%= ENV['DATABASE_USER'] %>
password: <%= ENV['DATABASE_PASSWORD'] %>
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
development:
<<: *default
database: <%= ENV['DATABASE_NAME_DEV'] %>
...
.env
...
DATABASE_HOST=database
...
这里有什么问题?
【问题讨论】:
标签: mysql ruby-on-rails docker docker-compose containers