ubuntu의docker로 루비온rails 구축
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/Gemfilegem 'rails', '5.0.0.1'
잠긴 파일 만들기sudo touch Gemfile.lock
문서 파일 편집
Dockerfile을 편집하여 상위 이미지를 읽고 hoge의 응용 프로그램 이미지를 만듭니다.
/usr/src/hoge/DockerfileFROM 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.ymlversion: '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
Reference
이 문제에 관하여(ubuntu의docker로 루비온rails 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kite_999/items/0a049b13a9a6ece8aafa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sudo mkdir /usr/src/hoge
cd /usr/src/hoge
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: ワーキングディレクトリを指定します。
gem 'rails', '5.0.0.1'
sudo touch Gemfile.lock
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: コマンド実行
docker build -t kite_999/hoge .
docker build . : カレントディレクトリのDockerfileをビルド
-t: 開発者名/プロジェクト名でイメージ名が作成される
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kite_999/hoge latest 00fd952ad98c 39 hours ago 878.8 M
docker run --rm -it -v "$PWD":/usr/src/hoge kite_999/hoge rails new . -BT
--rm: 実行後のコンテナを削除します。指定しない場合はゴミが残り続けます。
-it: コンテナのプロセスに対してttyを割り当てる(コンテナをつくってログインする)
-BT: bundle install 無し、テストツール無し
# bundle install でカレントディレクトリに rails5 をインストールした後、
# 以下のコメントアウトを外して再度 docker build を実行する
#
COPY . $APP_ROOT
EXPOSE 3000
CMD ["rails", "server", "-b", "0.0.0.0"]
docker build -t kite_999/hoge .
docker run -d -p 3000:3000 kite_999/hoge
-v "$PWD":/usr/src/hoge
docker ps
でコンテナIDを取り
docker restart コンテナID
で再起動可能
docker run -d -p 3000:3000 kite_999/hoge
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
docker ps -a
docker rm コンテナID
docker images
docker rmi イメージID
Reference
이 문제에 관하여(ubuntu의docker로 루비온rails 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kite_999/items/0a049b13a9a6ece8aafa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)