【Dockerfile】Rails Docker環境構築【開発環境】

DockerDocker
スポンサーリンク

Dockerfileについて

DockerfileはRailsの実行環境用のイメージを作成するものです。

Railsアプリケーション実行に必要なファイルやパッケージをイメージに含めるための定義が記載されています。
Dockerにおける仮想環境を意味するコンテナはこのイメージによって作成されます。

FROM ruby:2.4.3
RUN apt-get update -qq && apt-get install -y build-essential nodejs
RUN mkdir /app
WORKDIR /app
COPY Gemfile /app/Gemfile
COPY Gemfile.lock /app/Gemfile.lock
RUN bundle install
COPY . /app

FROM命令

コロンより前がリポジトリ、コロンの後ろをタグと呼びます。

以下の場合「ruby」リポジトリの「2.4.3」のタグを指しています。

これ以降のコマンドでruby

FROM ruby:2.4.3
Docker Hub

RUN命令

上記のFROM命令のRuby2.4.5の実行環境を元にしてRailsに必要なパッケージ、ファイルなどを追加していきます。

Ruby2.4.5のイメージからコンテナを起動して、実行するコマンドになります。
ubuntuのパッケージ管理システムである「apt-get」で「build-essential」と「nodejs」のパッケージをインストールしています。

RUN apt-get update -qq && apt-get install -y build-essential nodejs

rootディレクトリにappディレクトリを作成しています。

RUN mkdir /app

WORKDIR命令

こちらは分かり易いと思いますが、ワークディレクトリを「/app」に移動しています。

WORKDIR /app

COPY命令

以下では「Gemfile」「Gemfile.lock」ファイルをコンテナ内のappディレクトリにコピーしています。

COPY Gemfile /app/Gemfile
COPY Gemfile.lock /app/Gemfile.lock

appディレクトリで「bundle install」することで「Gemfile」に記載されているGemをインストールすることができます。

RUN bundle install

Dockerfileのあるフォルダをコンテナ内のappディレクトリにコピーします。
これはRailsの実行に必要なファイルを全てコンテナにコピーするために記載しています。

COPY . /app

フリーランスを目指すなら【テックパートナーズカレッジ】

未経験者向けWEBスクール【SHElikes】

コメント

タイトルとURLをコピーしました