なぜ記事を書こうと思ったか
Rails用のDockerfileを作成する際にコマンド及びコードの理解を備忘録として残すため。
Dockerfileとコマンド説明
Dockerfile
FROM ruby:[バージョン]
RUN set -x && curl -sL https://deb.nodesource.com/setup_14.x | bash -
RUN set -x && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
echo 'deb http://dl.yarnpkg.com/debian/ stable main' > /etc/apt/sources.list.d/yarn.list
RUN set -x && apt-get update -qq && apt-get install -yq nodejs yarn vim default-mysql-client
RUN mkdir /app
WORKDIR /app
COPY Gemfile /app/Gemfile
COPY Gemfile.lock /app/Gemfile.lock
RUN bundle install
COPY . /app
# Add a script to be executed every time the container starts.
COPY ./forDocker/rails/entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000
# Start the main process.
CMD ["rails", "server", "-b", "0.0.0.0"]
以下にコマンド及びコードの解説を致します。
- Dockerfileコマンド
-
FROM
Dockerイメージとバージョンの指定
-
RUN
コンテナ内で実行するコマンドの指定
-
WORKDIR
Dockerfileで設定した命令の作業ディレクトリの指定
-
COPY
ローカルのディレクトリ及びファイルをDockerコンテナにマウント
-
ENTRYPOINT
最初に実行するコマンドの指定
-
EXPOSE
Dockerコンテナを公開するポート番号の指定
-
CMD
デフォルトで実行するコマンドの指定
2.コード理解と用語理解
-
set -x
[set]はシェルの設定を確認、変更するコマンドで[-x]によって、シェルが実行したコマンドとその引数を出力。
-
curl -sL https://deb.nodesource.com/setup_14.x | bash -
NodeSourceをインストール。数字部分でNode.jsのバージョンを指定。(今回の場合はNodejsバージョン14を指定)
-
set -x && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ echo 'deb http://dl.yarnpkg.com/debian/ stable main' > /etc/apt/sources.list.d/yarn.list
Debian系で新しいyarnをインストールできるようにする。
-
apt-get
Debian系のディストリビューションのパッケージ管理システムであるAPTライブラリを利用してパッケージを操作管理するコマンド
-
apt-get update -qq && apt-get install -yq nodejs yarn vim default-mysql-client
APTパッケージ管理システムのアップデート及びnodejs、yarnなどのインストール
-
chmod +x /usr/bin/entrypoint.sh
全てのユーザーに/usr/bin/entrypoint.shの実行権限を与える。
最後に
私の記事だけで理解できない部分があったら、適宜調べてみて下さい。
一つ一つのコードを理解することで、理解できていない事が少なくなり、成長していけると信じています笑
ここまで読んで頂き有難うございました〜。