ibm/db2のコンテナは簡易的なテスト環境を作るときなどに便利ですが、DB2のセットアップから起動までに時間がかかるという欠点があります。
そのため、Github Actionのdocker上で利用しテストなどを実行しようとすると、DB2に接続できる状態を確認するためのShell Scriptを書く必要になることが多々あったため、DB2のデータベースが構築される状態になるまで待つだけの処理を書いたActionを作ってみました。
Action
使い方
シンプルに下記を書くだけです。
- uses: amanoese/db2-container-wait-action@v1
dockerコンテナの名前やデータベース名は指定しない限り、
最初に見つかったものを採用するため設定不要です。
また、データベース名を指定したい場合や2つ以上DBを使う場合などのために、オプションで指定できるようになっています。
詳しくは「usage-advanced-setting」を見てください。
workflow例
READMEにも書いていますが、下記のように利用されることを想定しています。
name: workflow-example
on: push
jobs:
simple-db2:
runs-on: ubuntu-latest
steps:
- name: start db2 container
run: docker run --name mydb2 --privileged=true -e LICENSE=accept -e DBNAME=testdb -dt ibmcom/db2
- name: wait database create
uses: amanoese/db2-container-wait-action@v1
- name: check connect database
run: docker exec -t mydb2 bash -c "sudo -i -u db2inst1 db2 'connect to testdb'"
備考
Action作るのおもしろいですね。
DB2詳しくないので、かんたんに待つ方法をご存知のかたがございましたらご教示いただけると幸いです。