rails 환경을 준비하는 여러 가지 절차

10425 단어 DockerRubyRails
이것은 나의 노트다.
새로운 rails 환경을 원할 때 항상 조사하기 때문이다.

rbenv+bundler에서 rails 환경을 준비하려면


이것은 나의 가장 기본적인 방법이다.
전제는 rbenv와 bundler를 넣었다는 것이다.
그리고 여기는 루비2입니다.3.0、rails5.0.0으로 설정합니다.
$ mkdir myapp
$ cd myapp
$ rbenv versions

2.3.0が入っていなければinstallする
$ rbenv install 2.3.0

$ rbenv local 2.3.0

2.3.0に*が付いていることを確認する
$ rbenv versions

$ bundle init
$ vim Gemfile
# railsのところのコメントアウトを外し、railsのバージョンを指定しておく
gem 'rails', '~> 5.0.0'
$ bundle install --path vendor/bundle
$ bundle exec rails new .
GemfileはYで上書きする
참조http://qiita.com/youcune/items/222777415f00d19cccb4

docker를 사용하여 rails 환경을 준비하려면


rails+postgresql의 상황


전제로 docker for macdocker 환경을 구축했다.
docker 초보자이기 때문에 루비2 참조.3.0、rails5.0.0、postgresq.
$ mkdir myapp
$ cd myapp
$ touch Dockerfile
$ vim Dockerfile
FROM ruby:2.3.0
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
ADD . /myapp
$ touch Gemfile
$ vim Gemfile
source 'https://rubygems.org'
gem 'rails', '5.0.0'
$ touch Gemfile.lock
$ touch docker-compose.yml
$ vim docker-compose.yml
docker-compose.yml
version: '2'
services:
  db:
    image: postgres
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/myapp
    ports:
      - "3010:3000"
    depends_on:
      - db
3010:3000은 맥의port3010호와 용기에 연결된 3000호를 뜻한다(예를 들어 맥의localhost:3000이 아무것도 작동하지 않으면 3000호를 유지하는 것은 문제없다)
$ docker-compose run web rails new . --force --database=postgresql --skip-bundle

rails newすると生成されるファイルなどが生成されているか確認する
$ ls -l

$ vim Gemfile
# 以下の行のコメントアウトを外す
gem 'therubyracer', platforms: :ruby
$ docker-compose build
$ vim config/database.yml
config/database.yml
development: &default
  adapter: postgresql
  encoding: unicode
  database: postgres
  pool: 5
  username: postgres
  password:
  host: db

test:
  <<: *default
  database: myapp_test
$ docker-compose up
다른 단말기에서
$ docker-compose run web rake db:create
여기.에 액세스하면 다음 페이지가 표시됩니다.
http://localhost:3010/

편집해 주세요.


첫 페이지를 원본 페이지로 변경해 보십시오.
다음 명령을 사용하여 웹come controller와 index action을 만듭니다.
$ docker-compose run web rails generate controller welcome index
routing을 변경합니다.
$ vim config/routes.rb
config/routes.rb
# get 'welcome/index'
root 'welcome#index'
그리고 방문하면 용기 쪽도 바로 반영됩니다.
http://localhost:3010/

rails+mysql 상황


참고.
위 단계$ vim docker-compose.yml까지 동일합니다.
docker-compose.yml
version: '2'
services:
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: hogehoge
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/myapp
    ports:
      - "3011:3000"
    depends_on:
      - db
주의
environment:
  MYSQL_ROOT_PASSWORD: hogehoge
이 부분이 없으면 시작할 때 다음과 같은 오류가 발생합니다 여기..
db_1   | error: database is uninitialized and password option is not specified
db_1   |   You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
다음 작업을 수행하려면 단계로 돌아갑니다.
$ docker-compose run web rails new . --force --database=mysql --skip-bundle

rails newすると生成されるファイルなどが生成されているか確認する
$ ls -l

$ vim Gemfile
# 以下の行のコメントアウトを外す
gem 'therubyracer', platforms: :ruby
$ docker-compose build
$ vim config/database.yml
config/database.yml
default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: hogehoge
  host: db

development:
  <<: *default
  database: myapp_development

test:
  <<: *default
  database: myapp_test

production:
  <<: *default
  database: myapp_production
  username: myapp
  password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>
$ docker-compose up
다른 단말기에서
$ docker-compose run web rake db:create
참고 자료에 액세스하면 다음 페이지가 표시됩니다.
주의$ docker-compose up에서 다음과 같은 오류가 발생하면 http://localhost:3011/에 기재된 대로 tmp/pids/server.pid를 삭제하면 시작할 수 있습니다.
web_1  | => Booting Puma
web_1  | => Rails 5.0.0 application starting in development on http://0.0.0.0:3000
web_1  | => Run `rails server -h` for more startup options
web_1  | A server is already running. Check /myapp/tmp/pids/server.pid.
web_1  | Exiting
myappm_web_1 exited with code 1

좋은 웹페이지 즐겨찾기