【发布时间】:2023-03-25 15:18:01
【问题描述】:
我刚刚在Running a Rails Development Environment in Docker 上关注了这篇文章。好文章,效果很好。设置完所有内容后,我决定继续设置生产环境。
目标:
每次运行 docker 映像时,我都想rake db:create && rake db:migrate。
问题:
如果我移动数据库创建和迁移步骤...
docker-compose run app rake db:create
docker-compose run app rake db:migrate
...进入 Dockerfile...
RUN rake db:create && rake db:migrate
...这将引发错误...
could not translate host name "postgres" to address: Name or service not known
...因为host 在我的database.yml...
default: &default
adapter: postgresql
encoding: unicode
pool: 5
timeout: 5000
username: postgres
host: postgres
port: 5432
development:
<<: *default
database: rails_five_development
...设置为我的docker-compose.yml...中指定的postgres服务名称...
version: "2"
services:
postgres:
image: postgres:9.5
ports:
- "5432"
app:
build: .
command: rails server -p 3000 -b '0.0.0.0'
volumes:
- .:/app
ports:
- "3000:3000"
links:
- postgres
...因为这是文章指出的推荐做法。
问题:
如何在每次运行 docker 映像时自动 rake db:create && rake db:migrate?
【问题讨论】:
标签: ruby-on-rails docker docker-compose dockerfile