docker-compose运行Rails
Posted youcong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker-compose运行Rails相关的知识,希望对你有一定的参考价值。
1.新建空目录,名字可以叫Rails
2.新建Dockerfile并添加如下内容
FROM ruby:2.5 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs RUN mkdir /myapp WORKDIR /myapp COPY Gemfile /myapp/Gemfile COPY Gemfile.lock /myapp/Gemfile.lock RUN bundle install COPY . /myapp
3.新建Gemfile并添加如下内容
source ‘https://rubygems.org‘
gem ‘rails‘, ‘5.2.0‘
4.创建一个空Gemfile.lock
来构建我们的Dockerfile
touch Gemfile.lock
5.编写
docker-compose.yml
version: ‘3‘ services: db: image: postgres volumes: - ./tmp/db:/var/lib/postgresql/data web: build: . command: bundle exec rails s -p 3000 -b ‘0.0.0.0‘ volumes: - .:/myapp ports: - "3000:3000" depends_on: - db
6.有了上面这四个文件,现在可以使用docker-compose run生成Rails骨架应用程序
docker-compose run web rails new . --fordatabase=postgresql
7.授权
sudo chown -R $USER:$USER .
8.构建
docker-compose build
9.用以下内容替换内容config/database.yml
default: &default adapter: postgresql encoding: unicode host: db username: postgres password: pool: 5 development: <<: *default database: myapp_development test: <<: *default database: myapp_test
10.启动应用程序
docker-compose up
控制台输出:
11.浏览器输入:http://IP:3000/回车 出现如下界面表示成功
12.最后,您需要创建数据库。在另一个终端中,运行
docker-compose run web rake db:create
控制台输出:
以上是关于docker-compose运行Rails的主要内容,如果未能解决你的问题,请参考以下文章
每个Gemfile更新后docker-compose rebuild?
将 docker-compose 与 CI 结合使用 - 如何处理退出代码和守护程序链接容器?
Docker-compose 与 redis、sidekiq、rails SocketError