This repository was archived by the owner on Aug 29, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmake_DockerImages.sh
More file actions
executable file
·114 lines (87 loc) · 3.78 KB
/
make_DockerImages.sh
File metadata and controls
executable file
·114 lines (87 loc) · 3.78 KB
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/usr/bin/env bash
set -Ceux -o pipefail
IFS=$'\n\t'
# License for the Code.
#
# Copyright Owner: Yoshitsugu Kesamaru
# Please refer to the separate license file for the license of the code.
# Automation docker operation from local build to push to DockerHub.
# TODO: face01_gpuとface01_no_gpuをfor loopでまわすこと
#######################################
# __SUMMARY__
# Globals:
# BACKUP_DIR
# ORACLE_SID
# Arguments:
# None
# Returns:
# None
#######################################
function my_command() {
# cd: DIST/
cd ~/bin/DIST
# ////////////////////////////////////////
# face01_gpu
# ////////////////////////////////////////
# docker build: CPU100%になるので他の作業との兼ね合いに注意すること
docker build -t tokaikaoninsho/face01_gpu:2.2.02 -f docker/Dockerfile_gpu . --network host
# dockerを起動
# docker run --rm -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix: face01_gpu:2.2.02
# # get `container-id`
# face01_gpu_container-id = docker ps -a | grep face01_gpu:2.2.02 | awk '{print $1}'
# # commit
# # docker container commit "${face01_gpu_container-id}" tokaikaoninsho/face01_gpu:2.2.02
# # get `image-id`
# face01_gpu_image-id = docker images | grep -E "tokaikaoninsho/face01_gpu\s+2.2.02.*" | awk '{print $3}'
# # add tag
# docker tag "${face01_gpu_image-id}" face01_gpu
# # login
docker login
# docker push
docker push tokaikaoninsho/face01_gpu:2.2.02
# ////////////////////////////////////////
# face01_no_gpu
# ////////////////////////////////////////
# docker build: CPU100%になるので他の作業との兼ね合いに注意すること
docker build -t tokaikaoninsho/face01_no_gpu:2.2.02 -f docker/Dockerfile_no_gpu . --network host
# # dockerを起動
# docker run --rm -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix: face01_no_gpu:2.2.02
# # get `container-id`
# face01_no_gpu-container-id = docker ps -a | grep face01_no_gpu:2.2.02 | awk '{print $1}'
# # commit
# docker container commit "${face01_no_gpu_container-id}" tokaikaoninsho/face01_no_gpu:2.2.02
# # get `image-id`
# face01_no_gpu_image-id = docker images | grep -E "tokaikaoninsho/face01_no_gpu\s+2.2.02.*" | awk '{print $3}'
# # add tag
# docker tag "${face01_no_gpu_image-id}" face01_no_gpu
# login
docker login
# docker push
docker push tokaikaoninsho/face01_no_gpu:2.2.02
return 0
}
function my_error() {
zenity --error --text="\
失敗しました。
"
exit 1
}
my_command || my_error
# ////////////////////////////////////////
# REFERENCE:
# Docker
# [docker push 手順](https://zenn.dev/katan/articles/1d5ff92fd809e7)
# [grep, awkによる抽出](https://zenn.dev/sickleaf/articles/99884a12b0489cf21d45)
# google style guide
# [Shell Style Guide](https://github.com/google/styleguide/blob/gh-pages/shellguide.md)
# [Googleの肩に乗ってShellコーディングしちゃおう](https://qiita.com/ma91n/items/5f72ca668f1c58176644)
# ////////////////////////////////////////
# MEMORANDUM:
# set
# C: リダイレクトで既存のファイルを上書きしない
# e: exit status not equal 0 -> terminate script
# u: 初期化していない変数があるとエラー(特殊パラメーターである「@」と「*」は除く)
# x: 実行するコマンドを出力して何をしたらどうなったかがログに残る(トレース情報として、シェルが実行したコマンドとその引数を出力する。情報の先頭にはシェル変数PS4の値を使用)
# o: when error occurred on pipeline, terminate the script
# -o pipefail: パイプの途中で発生したエラーがexit codeとなる。デフォルトではパイプ最後のコマンドのexit code。
# IFS=$'\n\t': 引数の区切り文字は改行とタブのみに指定。(空白は区切り文字に含めない)