Docker ビルドして、ビルド結果を判定するシェルスクリプトの作り方(「$?」ドルマーク+クエスチョンマーク使用)

本記事では、Dockerfileをビルドして、ビルドの成功失敗を判定するシェルスクリプトの作り方について記載します。

具体的には以下のことをやっていきます。

本記事でやること

①シェルファイルを作成する
②シェルファイルの中でDockerビルドする
③ビルドした結果、成功or失敗で処理を分岐させる

スポンサーリンク

本記事のポイント

ポイントは以下の通りです。

  • Dockerビルドの結果は「$?(ドルマーク+クエスチョンマーク)」にはいる
    • 成功時の「$?(ドルマーク+クエスチョンマーク)」は「0」になる

動作確認していきます。

まずは、動作確認に必要なファイルを作成していきます。

必要なファイルの作成

以下の2つのファイルを作成します。

作成する2つのファイル

シェルファイル
Dockerfile

 

シェルファイルを作成する

「build.sh」というファイルを作成します


docker build -t test ./
if [ $? -eq 0 ]; then
    echo "build success"
    # ここにデプロイコマンドとか書く
else
    echo "build fail"
fi

 

Dockerビルドして、

  • 成功時:build success
  • 失敗時:build fail

というメッセージを出すスクリプトになっています。

Dockerビルドの結果は「$?」に格納されます。

作成したファイルに実行権限を付与します。

chmod 755 build.sh

Dockerfileを作成する

「Dockerfile」というファイルを作成します

From nginx
# curlインストール
RUN apt-get update \
&& apt-get install -y curl

 動作確認

成功時

以下のコマンドで実行します。

./build.sh

build successと表示され成功したことがわかります。

失敗時

「Dockerfile」以下のように変更します

  • curl->culr2に変更
From nginx
# curlインストール
RUN apt-get update \
&& apt-get install -y curl2

以下のコマンドで実行します。

./build.sh

build failと表示され失敗したことがわかります。

まとめ

  • シェルファイルを作成する
  • シェルファイルの中でDockerビルドする
  • ビルドした結果、成功or失敗で処理を分岐させる

ということをやってみました。成功時にデプロイコマンドを実行させれば、成功した時だけデプロイするという安全あデプロイスクリプトを作成できますね。

Docker公式:https://docs.docker.com/