-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathdocker.sh
executable file
·109 lines (98 loc) · 5.19 KB
/
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
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
#!/bin/bash -xe
function cmd_build() {
local hextarget="${1?'target, use base, mini or all'}"
docker build --cache-from hexblade/hexblade-base:dev -t hexblade/hexblade-base:dev .
if [[ "x$hextarget" == "xbase" ]]; then return; fi
docker build --cache-from hexblade/hexblade:dev -t hexblade/hexblade:dev -f docker/util/Dockerfile.mini .
if [[ "x$hextarget" == "xmini" ]]; then return; fi
docker build --cache-from hexblade/hexblade-firefox:dev -t hexblade/hexblade-firefox:dev -f docker/util/Dockerfile.firefox .
docker build --cache-from hexblade/hexblade-basechrome:dev -t hexblade/hexblade-basechrome:dev -f docker/util/Dockerfile.basechrome .
docker build --cache-from hexblade/hexblade-chrome:dev -t hexblade/hexblade-chrome:dev -f docker/util/Dockerfile.chrome .
docker build --cache-from hexblade/hexblade-puppeteer:dev -t hexblade/hexblade-puppeteer:dev -f docker/puppeteer/Dockerfile.puppeteer .
}
function cmd_export() {
rm -rf target/wp-docker/docker || true
mkdir -p target/wp-docker/docker
docker save \
hexblade/hexblade-base:dev \
hexblade/hexblade:dev \
hexblade/hexblade-firefox:dev \
hexblade/hexblade-basechrome:dev \
hexblade/hexblade-chrome:dev \
hexblade/hexblade-puppeteer:dev | \
gzip > target/wp-docker/docker/docker-hexblade.tar.gz
du -hs target/wp-docker/docker/*
}
function cmd_import() {
du -hs target/wp-docker/docker/*
docker load -i target/wp-docker/docker/docker-hexblade.tar.gz
}
function cmd_clean() {
docker ps -aq --filter label=hexblade_dev | xargs docker rm -f || true
docker system prune --volumes --filter label=hexblade_dev -f || true
}
function cmd_run() {
docker run -it --rm --label hexblade_dev \
-p 5900:5900 \
hexblade/hexblade:dev "$@"
}
function cmd_push() {
hexblade_docker_version="${1?"version to push"}"
hexblade_docker_alias="${2}"
docker tag hexblade/hexblade-base:dev "murer/hexblade-base:$hexblade_docker_version"
docker tag hexblade/hexblade:dev "murer/hexblade:$hexblade_docker_version"
docker tag hexblade/hexblade-firefox:dev "murer/hexblade-firefox:$hexblade_docker_version"
docker tag hexblade/hexblade-basechrome:dev "murer/hexblade-basechrome:$hexblade_docker_version"
docker tag hexblade/hexblade-chrome:dev "murer/hexblade-chrome:$hexblade_docker_version"
docker tag hexblade/hexblade-puppeteer:dev "murer/hexblade-puppeteer:$hexblade_docker_version"
docker push "murer/hexblade-base:$hexblade_docker_version"
docker push "murer/hexblade:$hexblade_docker_version"
docker push "murer/hexblade-firefox:$hexblade_docker_version"
docker push "murer/hexblade-basechrome:$hexblade_docker_version"
docker push "murer/hexblade-chrome:$hexblade_docker_version"
docker push "murer/hexblade-puppeteer:$hexblade_docker_version"
if [[ "x$hexblade_docker_alias" != "x" ]]; then
docker tag hexblade/hexblade-base:dev "murer/hexblade-base:$hexblade_docker_alias"
docker tag hexblade/hexblade:dev "murer/hexblade:$hexblade_docker_alias"
docker tag hexblade/hexblade-firefox:dev "murer/hexblade-firefox:$hexblade_docker_alias"
docker tag hexblade/hexblade-basechrome:dev "murer/hexblade-basechrome:$hexblade_docker_alias"
docker tag hexblade/hexblade-chrome:dev "murer/hexblade-chrome:$hexblade_docker_alias"
docker tag hexblade/hexblade-puppeteer:dev "murer/hexblade-puppeteer:$hexblade_docker_alias"
docker push "murer/hexblade-base:$hexblade_docker_alias"
docker push "murer/hexblade:$hexblade_docker_alias"
docker push "murer/hexblade-firefox:$hexblade_docker_alias"
docker push "murer/hexblade-basechrome:$hexblade_docker_alias"
docker push "murer/hexblade-chrome:$hexblade_docker_alias"
docker push "murer/hexblade-puppeteer:$hexblade_docker_alias"
fi
}
cmd_pull() {
hexblade_docker_version="${1:-"edge"}"
docker pull "murer/hexblade-base:$hexblade_docker_version"
docker pull "murer/hexblade:$hexblade_docker_version"
docker pull "murer/hexblade-firefox:$hexblade_docker_version"
docker pull "murer/hexblade-basechrome:$hexblade_docker_version"
docker pull "murer/hexblade-chrome:$hexblade_docker_version"
docker pull "murer/hexblade-puppeteer:$hexblade_docker_version"
docker tag "murer/hexblade-base:$hexblade_docker_version" hexblade/hexblade-base:dev
docker tag "murer/hexblade:$hexblade_docker_version" hexblade/hexblade:dev
docker tag "murer/hexblade-firefox:$hexblade_docker_version" hexblade/hexblade-firefox:dev
docker tag "murer/hexblade-basechrome:$hexblade_docker_version" hexblade/hexblade-basechrome:dev
docker tag "murer/hexblade-chrome:$hexblade_docker_version" hexblade/hexblade-chrome:dev
docker tag "murer/hexblade-puppeteer:$hexblade_docker_version" hexblade/hexblade-puppeteer:dev
}
function cmd_login() {
set +x
echo "${DOCKER_PASS?'DOCKER_PASS'}" | docker login -u "${DOCKER_USER?'DOCKER_USER'}" --password-stdin
}
function cmd_test() {
local testname="${1?'test to run, like: pack.util.atom'}"
docker build -t "hexablde/test.$testname:dev" -f "test/docker/Dockerfile.$testname" .
}
function cmd_test_all() {
local k
find test/docker -maxdepth 1 -type f -name 'Dockerfile.*' | cut -d'/' -f3 | cut -d'.' -f2- | while read k; do
cmd_test "$k"
done
}
cd "$(dirname "$0")"; _cmd="${1?"cmd is required"}"; shift; "cmd_${_cmd}" "$@"