本記事では、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/