はじめに
この記事はDockerfileについて学習したこと、気づいたことをまとめていってる記事です。
余裕があれば随時更新していこうと思っています。
※ 課題解決系の記事ではないです。
参考コード : Quickstart:Compose and Rails (dockery公式document)
Dockerfileファイルとは
「イメージを構築するためのテキストファイル」です。
必要となるコマンドを全て盛り込んでいます。
dockerファイルからイメージを作成するので以下のようなメリットがある。
- 環境構築の手順を自動化
- 開発者が皆、同じ環境下で開発できる
- 環境をファイルで管理可能
Dockerfileファイルの内容
こちらのコードを参考にしています。
Quickstart:Compose and Rails (dockery公式document)
Dockerfile
# syntax=docker/dockerfile:1
FROM ruby:2.5
# 使用するイメージの定義、ruby:2.5を使用する。
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
# 実行するコマンドを指定します。
# apt-get update -qq : ライブラリをアップデートします。-qq はquietモードで実行。エラー以外を表示しないオプションです。
# apt-get install -y nodejs postgresql-client ... 全て承諾(-yオプション)で必要なライブラリを入れます
WORKDIR /myapp
# 作業ディレクトリの指定
# RUN,COPYなどのあらゆる起点となります。
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
# Gemfile、Gemfile.lockをDockerコンテナ内にコピーして、bundle installします。
# Add a script to be executed every time the container starts.
COPY entrypoint.sh /usr/bin/
# entrypoint.shをコンテナ内の/usr/bin/にコピーします。
RUN chmod +x /usr/bin/entrypoint.sh
# entrypoint.shの実行権限を付与します。
ENTRYPOINT ["entrypoint.sh"]
# 最初に実行するコマンドを指定。entrypoint.shを実行する。
EXPOSE 3000
# コンテナがリッスン(待機)するポート番号を指定します。
# Configure the main process to run when running the image
CMD ["rails", "server", "-b", "0.0.0.0"]
# ソフトウェアを実行するコマンドです。
# ["実行ファイル","パラメータ1","パラメータ2", ...]の形式で書かれています。