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
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
コメント