ubuntu의docker로 루비온rails 구축

5984 단어 UbuntuDockerRuby

ubuntu의docker로 루비온rails 구축


rails를 배우고 싶은데 루비가 잘 모르겠어요. 반복해 봐야 될 것 같아요.
호스트를 더럽히지 않기 위해서, 우리는docker로rails 운행 환경을 구축하려고 시도합니다.
거의.
http://qiita.com/togana/items/30b22fc39fe6f7a188ec
참고로 삼다.

전제 조건


ruby 2.3.1
다른 버전을 사용할 때는 다음을 참조하십시오.
https://hub.docker.com/r/_/ruby/
rails 5.0.0.1
다른 버전을 사용할 때는 다음을 참조하십시오.
http://rubyonrails.org/
이번 가설은 호지라는 프로그램을 만드는 프로젝트입니다.

설치


http://qiita.com/kite_999/items/9178b3e7cd80bbe9ce15
에 설명된 해당 매개변수의 값입니다.

docker 이미지 만들기


루비 원본을 호스트 옆에 두는 프로젝트 폴더를 만듭니다.
sudo mkdir /usr/src/hoge
cd /usr/src/hoge

루비 이미지 다운로드 및gemfile 만들기


루비를 설치하고 싶지 않기 때문에 이미지를 사용하고gemfile 제작도docker로 진행합니다.
docker pull ruby:2.3.1
docker run --rm -v "$PWD":/usr/src/hoge -w /usr/src/hoge ruby:2.3.1 bundle init
탭 페이지에서 항목 작성 또는 편집
docker pull
イメージをダウンロードします。この場合は「ruby:2.3.1」を取得します。

docker run オプション image名:タグ名 実行コマンド
--rm: 実行後のコンテナを削除します。指定しない場合はゴミが残り続けます。
-v: ホストのディレクトリをコンテナ内のディレクトリにマウントします。"$PWD"はカレントディレクトリを意味します。
-w: ワーキングディレクトリを指定します。

Gemfile 편집


방금 만든 Gemfile에서 rails를 설명합니다.
/usr/src/hoge/Gemfile
gem 'rails', '5.0.0.1'
잠긴 파일 만들기
sudo touch Gemfile.lock

문서 파일 편집


Dockerfile을 편집하여 상위 이미지를 읽고 hoge의 응용 프로그램 이미지를 만듭니다.
/usr/src/hoge/Dockerfile
FROM ruby:2.3.1
MAINTAINER kite_999
ENV APP_ROOT /usr/src/hoge

WORKDIR $APP_ROOT

RUN apt-get update && \
    apt-get install -y nodejs \
                       mysql-client \
                       postgresql-client \
                       sqlite3 \
                       --no-install-recommends && \
    rm -rf /var/lib/apt/lists/*

COPY Gemfile $APP_ROOT
COPY Gemfile.lock $APP_ROOT

RUN \
  echo 'gem: --no-document' >> ~/.gemrc && \
  cp ~/.gemrc /etc/gemrc && \
  chmod uog+r /etc/gemrc && \
  bundle config --global build.nokogiri --use-system-libraries && \
  bundle config --global jobs 4 && \
  bundle install && \
  rm -rf ~/.gem

# bundle install でカレントディレクトリに rails5 をインストールした後、
# 以下のコメントアウトを外して再度 docker build を実行する
#
#COPY . $APP_ROOT
#
#EXPOSE  3000
#CMD ["rails", "server", "-b", "0.0.0.0"]
메모
FROM: 親イメージの指定
ENV: 環境変数の設定
WORKDIR: ワーキングディレクトリの指定
COPY: ファイルをイメージにコピー
RUN: コマンド実行

Dockerfile을 사용하여 이미지 만들기

docker build -t kite_999/hoge .
docker build . : カレントディレクトリのDockerfileをビルド
-t: 開発者名/プロジェクト名でイメージ名が作成される
위에서 gm'rails','5.0.0.1'의 이미지를 만듭니다.
결과는 다음 명령을 통해 참조할 수 있습니다.
docker images

REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
kite_999/hoge   latest              00fd952ad98c        39 hours ago        878.8 M

rails new를 진행하도록 하겠습니다.


인상이 있어서 rails의 모형은 rails new입니다.에서 설명한 대로 해당 매개변수의 값을 수정합니다.Gemfile이 충돌할 수 있으므로 Y 를 선택하여 덮어씁니다.
docker run --rm -it -v "$PWD":/usr/src/hoge  kite_999/hoge  rails new . -BT
--rm: 実行後のコンテナを削除します。指定しない場合はゴミが残り続けます。
-it: コンテナのプロセスに対してttyを割り当てる(コンテナをつくってログインする)
-BT: bundle install 無し、テストツール無し

새 를 사용하여 이미지를 다시 생성합니다.


Dockerfile의 주석 아웃을 삭제하고 이미지를 다시 만듭니다.
# bundle install でカレントディレクトリに rails5 をインストールした後、
# 以下のコメントアウトを外して再度 docker build を実行する
#
COPY . $APP_ROOT

EXPOSE  3000
CMD ["rails", "server", "-b", "0.0.0.0"]
docker build -t kite_999/hoge .
rails 이미지 완료
아래에서 시험적으로 집행할 수 있다.
docker run -d -p 3000:3000 kite_999/hoge
상기 조작을 실행한 후 http를 통해 3000port에 접근하면 다음과 같은 화면이 표시됩니다.

개발할 때?


다음 옵션으로/usr/src/hoge 디렉터리를 불러왔기 때문에
호스트의 파일을 직접 보겠습니다.
따라서host의/usr/src/hoge 디렉터리를 업데이트하면 반영됩니다.
-v "$PWD":/usr/src/hoge
서버 구성을 수정할 때 다시 시작해야 합니다.
재부팅 방법은 다음과 같습니다.
docker ps
でコンテナIDを取り
docker restart コンテナID
で再起動可能

docker-compose 관리 용기 사용하기


하나하나
docker run -d -p 3000:3000 kite_999/hoge
싸우기 힘들면 docker-compose로 관리합니다.
docker-compose.yml
version: '2'
services:
  app:
    build: .
    environment:
      RAILS_ENV: development
    ports:
      - '3000:3000'
    volumes:
      - .:/usr/src/hoge
상술한 문건을 제작한 후, 아래의 명령으로 재건하다
docker-compose build
시작은 다음 내용만 하면 됩니다.
docker-compose up -d
-d: バックグラウンド実行
다시 시작해도 아래밖에 없어요.
docker-compose restart
명령 클래스의 상세한 상황은 다음과 같다.
http://docs.docker.jp/compose/reference/index.html

쓸어버리다


상기 절차를 통해gemfile에서compose 전 이미지와rails 이미지를 생성할 수 있습니다. 사용하지 않았기 때문입니다.
삭제
docker ps -a
용기의 일람을 표시하고 아래에서 삭제합니다
docker rm コンテナID
컨테이너를 삭제하면 이미지를 삭제할 수 있습니다.
docker images
이미지의 일람을 표시하고 아래에서 삭제합니다
docker rmi イメージID

좋은 웹페이지 즐겨찾기