使用以下文件,我可以成功启动rails应用程序 除了使用数据库的rake操作。我跑的时候 docker exec -it www_web_1 bundle exec rake db:migrate 我看到它试图连接到localhost(web)并失败 而不是conntecing到数据库主机(db)
任何想法如何解决?
Dockerfile
FROM ruby:2.4.2
RUN mkdir -p /var/www/project
WORKDIR /var/www/project
COPY Gemfile /var/www/project/Gemfile
RUN bundle install
COPY entrypoint.sh /usr/local/bin
COPY . /var/www/project
CMD ["entrypoint.sh"]
entrypoint.sh
#!/usr/bin/env sh
bundle exec rake db:migrate
bundle exec rails s -p 3000 -b '0.0.0.0'
docker-compose.yml文件
version: '2'
services:
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: project
web:
depends_on:
- db
environment:
- PROJECT_DB_NAME=project
- PROJECT_DB_USER=root
- PROJECT_DB_PSWD=root
- PROJECT_DB_HOST=db
- RACK_ENV=production
- RAILS_ENV=production
volumes:
mysql:
web:
配置/ database.yml的
default: &default
adapter: mysql2
pool: 5
timeout: 5000
database: <%= ENV["PROJECT_DB_NAME"] %>
encoding: utf8
username: <%= ENV["PROJECT_DB_USER"] %>
password: <%= ENV["PROJECT_DB_PSWD"] %>
host: <%= ENV["PROJECT_DB_HOST"] %>
development:
<<: *default
production:
<<: *default
答案 0 :(得分:0)
你有撰写文件。 你必须运行撰写命令
$ docker-compose up --build # run and build
$ docker-compose run web rake db:create # database create
$ docker-compose run web rake db:migrate # migreate
如果你想更多了解docker-compose 访问https://github.com/x1wins/paper-flower/wiki/2.-Docker--compose-(Development-mode,-Standalone)