-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathbuild_docker_images.sh
58 lines (47 loc) · 1.39 KB
/
build_docker_images.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
#!/bin/bash
# 默认的 GOOS 和 GOARCH 值
DEFAULT_GOOS="linux"
DEFAULT_GOARCH="amd64"
# 初始化 GOOS 和 GOARCH 变量
GOOS=""
GOARCH=""
# 解析命令行参数
while [ $# -gt 0 ]; do
case "$1" in
*=*) # 如果参数是键值对形式
key="${1%%=*}" # 提取键
value="${1#*=}" # 提取值
case "$key" in
GOOS) GOOS="$value" ;; # 如果键是 GOOS,则设置 GOOS
GOARCH) GOARCH="$value" ;; # 如果键是 GOARCH,则设置 GOARCH
*) echo "Unknown parameter: $key" ;;
esac
shift
;;
*) # 如果参数不是键值对形式
echo "Usage: $0 [GOOS=operating_system] [GOARCH=architecture]"
exit 1
;;
esac
done
# 如果没有通过命令行参数设置 GOOS,则尝试从 go env 读取
if [ -z "$GOOS" ]; then
GOOS=$(go env GOOS 2>/dev/null)
# 如果 go env 失败,则使用默认值
if [ -z "$GOOS" ]; then
GOOS="$DEFAULT_GOOS"
fi
fi
# 如果没有通过命令行参数设置 GOARCH,则尝试从 go env 读取
if [ -z "$GOARCH" ]; then
GOARCH=$(go env GOARCH 2>/dev/null)
# 如果 go env 失败,则使用默认值
if [ -z "$GOARCH" ]; then
GOARCH="$DEFAULT_GOARCH"
fi
fi
# 输出 GOOS 和 GOARCH 的值
echo "The value of GOOS is: $GOOS"
echo "The value of GOARCH is: $GOARCH"
cp ../avformat ./ -r
docker build --build-arg GOOS=$GOOS --build-arg GOARCH=$GOARCH -t lkm .