Help us understand the problem. What is going on with this article?

Dockerでテストの時だけDBを立ち上げるスクリプト

概要

CIでテストの時だけ一時的にDBを立ち上げ、テストが終わったら削除したいってことありませんか?
Dockerを使ってそれを行うスクリプトです。

スクリプト

#/bin/sh

CONTAINER_ID=`docker run --rm -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=test_db -e TZ=Asia/Tokyo -d mysql:5.6 mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci`
CONTAINER_IP=`docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $CONTAINER_ID`

trap finally EXIT
function finally {
    docker stop $CONTAINER_ID
}

until docker run --rm busybox nc -z -v -w30 $CONTAINER_IP 3306
do
  echo "Waiting for database connection..."
  sleep 3
done

# ここでテストを実行する(DB名やパスワードなどは実行パラメータか環境変数で指定する)
purini-to
サーバーサイド〜クライアントサイドまで色々触ってるので記事にしていきます。 最近はAWSとGo(とJava)がメイン。 GCPやりたいなー
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away