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

如何在 AWS CodeBuild 上运行 docker-compose?

markdown docker-compose片段

markdown docker-composeを使ってrails new