-
Notifications
You must be signed in to change notification settings - Fork 36
/
prepare-docker.sh
executable file
·65 lines (46 loc) · 1.72 KB
/
prepare-docker.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash
build_image() {
set -e
rm -r target/build || true
## ソースコードからSeichiAssist.jarをビルド
./sbt assembly
## dockerイメージのビルド
docker compose build -m 2g
}
stop_docker_service() {
set -e
docker compose down
}
set -e
# 子プロセス側で関数をコマンドとして参照したいためexportする
export -f build_image
export -f stop_docker_service
# 既存のサービスを落とし、ビルド完了を待つ処理を並列実行する
echo "stop_docker_service build_image" | xargs -P 0 -n 1 bash -c
if [ $1 = "update-gachadata" ]; then
echo Updating gachadata...
docker compose up -d db
# ここで遅延を入れないとdbが起動する前にgachadataを更新するスクリプトが走ってしまう
sleep 3
docker exec -it seichiassist-db-1 /update-gachadata.sh
echo "Completed updating gachadata."
stop_docker_service
fi
## デバッグに必要なdockerコンテナを起動
## (起動後はCtrl+Cで停止できます)
docker compose up --abort-on-container-exit
## 以下、リファレンス ##
## バックグラウンドでdockerコンテナを起動
## (カレントディレクトリにcompose.ymlが存在する必要がある)
# docker compose up -d
## バックグラウンドで起動したdockerコンテナを停止
# docker compose stop
## dockerコンテナを削除(データが初期化される)
# docker compose down
# or
# docker compose rm -f
## 起動中のdockerコンテナ内に入る
## (Container ID は # docker ps で確認する)
# docker exec -it <Container ID> /bin/bash
## キャッシュを使用しないdockerイメージビルド(トラブルシューティング時に使用)
# docker compose build --no-cache -m 2g