1- # https://just.systems/man/en
1+ # See https://just.systems/man/en
2+
3+ # positional args
4+ # * NOTE: unable to reuse recipe name (e.g., start/stop); prefix recipes with `@`
5+ # set positional-arguments := true
26
37# load .env
48set dotenv-load
59
610# set env var
7- export APP := ` echo ${APP_NAME} `
8- export CPU := " 2"
9- export IMAGE := ` echo ${IMAGE} `
10- export MEM := " 2048"
11- export NS := " default"
12- export PROF := " minikube"
13- export SHELL := " /bin/bash"
11+ export APP := ` echo ${APP} `
12+ export CPU := ` echo ${CPU} `
13+ export IMAGE := ` echo ${IMAGE} `
14+ export MEM := ` echo ${MEM} `
15+ export NS := ` echo ${NS} `
16+ export PROF := ` echo ${PROF} `
1417export SCRIPT := " harden"
15- export SHELL := " /bin/bash"
16- export TAG := ` echo ${TAG} `
17- VERSION := ` cat VERSION `
18+ export SHELL := ` echo ${SHELL} `
19+ export TAG := ` echo ${TAG} `
20+ export VERSION := " latest"
1821
1922# x86_64/arm64
2023arch := ` uname -m `
2124
2225# hostname
2326host := ` uname -n `
2427
25- # [halp] list available commands
28+ # docker-compose / docker compose
29+ # * https://docs.docker.com/compose/install/linux/#install-using-the-repository
30+ docker-compose := if ` command -v docker-compose; echo $? ` == " 0" {
31+ " docker-compose"
32+ } else {
33+ " docker compose"
34+ }
35+
36+ # [halp] list available commands
2637default :
2738 just --list
2839
29- # TODO: setup tilt
30- # [devspace] start minikube + devspace
31- start-devspace :
40+ # [git] update git submodules
41+ sub :
42+ git submodule update --init --recursive && git pull --recurse-submodules
43+
44+ # [minikube] start minikube + tilt
45+ start-minikube :
3246 #!/usr/bin/env bash
3347 set -euxo pipefail
34-
3548 if [[ $(minikube status -f \{\{\.Host\}\}) = ' Stopped' ]]; then
3649 minikube start --memory={{ MEM}} --cpus={{ CPU}} -p {{ PROF}}
3750 fi
3851
39- devspace use namespace {{ NS}}
40- devspace dev
52+ # [tilt] deploy docker image to local k8s cluster
53+ tilt-up : start-minikube
54+ tilt up
4155
42- # [devspace ] stop minikube
43- stop-devspace :
56+ # [minikube ] stop minikube
57+ stop-minikube :
4458 minikube stop -p {{ PROF}}
4559
46- # docker-compose / docker compose
47- # * https://docs.docker.com/compose/install/linux/#install-using-the-repository
48- docker-compose := if ` command -v docker-compose; echo $? ` == " 0" {
49- " docker-compose"
50- } else {
51- " docker compose"
52- }
53-
54- # [halp] list available commands
55- default :
56- just --list
57-
58- # [check] lint sh script
60+ # [check] lint sh script
5961checkbash :
6062 #!/usr/bin/env bash
6163 checkbashisms {{ SCRIPT}}
@@ -66,7 +68,7 @@ checkbash:
6668 echo " No bashisms found"
6769 fi
6870
69- # [docker] build locally or on intel box
71+ # [docker] build locally
7072build : checkbash
7173 #!/usr/bin/env bash
7274 set -euxo pipefail
@@ -76,7 +78,11 @@ build: checkbash
7678 docker build -f Dockerfile --progress=plain -t {{ APP}} .
7779 fi
7880
79- # [docker] arm build w/docker-compose defaults
81+ # [docker] intel build
82+ buildx : checkbash
83+ docker buildx build -f Dockerfile --progress=plain -t ${TAG} --build-arg CHIPSET_ARCH=x86 _64 -linux-gnu --load .
84+
85+ # [docker] arm build w/docker-compose defaults
8086build-clean : checkbash
8187 #!/usr/bin/env bash
8288 set -euxo pipefail
@@ -86,7 +92,7 @@ build-clean: checkbash
8692 {{ docker-compose}} build --pull --no-cache --parallel
8793 fi
8894
89- # [docker] login to registry (exit code 127 == 0)
95+ # [docker] login to registry (exit code 127 == 0)
9096login :
9197 #!/usr/bin/env bash
9298 # set -euxo pipefail
@@ -97,24 +103,24 @@ login:
97103 exit 1
98104 fi
99105
100- # [docker] tag image as latest
106+ # [docker] tag image as latest
101107tag-latest :
102108 docker tag {{ APP}} :latest {{ IMAGE}} / {{ APP}} :latest
103109
104- # [docker] tag latest image from VERSION file
110+ # [docker] tag latest image from VERSION file
105111tag-version :
106112 @ echo " create tag {{ APP}} :{{ VERSION}} {{ IMAGE}} /{{ APP}} :{{ VERSION}} "
107113 docker tag {{ APP}} {{ IMAGE}} / {{ APP}} :{{ VERSION}}
108114
109- # [docker] push latest image
115+ # [docker] push latest image
110116push : login
111117 docker push {{ IMAGE}} / {{ APP}} :{{ TAG}}
112118
113- # [docker] pull latest image
119+ # [docker] pull latest image
114120pull : login
115121 docker pull {{ IMAGE}} / {{ APP}}
116122
117- # [docker] run container
123+ # [docker] run container
118124run : build
119125 #!/usr/bin/env bash
120126 # set -euxo pipefail
@@ -123,30 +129,25 @@ run: build
123129 - -env -file .env \
124130 - -entrypoint={{ SHELL}} \
125131 - h ${HOST:-localhost} \
126- - v $(pwd)/ conf:/ etc/ duoauthproxy \
127- - p ${PORT:-1812 }:${PORT:-1812 / udp} \
128- - p ${PORT2:-18120 }:${PORT2:-18120 / udp} \
129- - -cap-drop=all \
130- - -cap-add=setgid \
131- - -cap-add=setuid \
132+ - v $(pwd)/ app:/ app \
132133 {{ APP}}
133134
134- # [docker] start docker-compose container
135+ # [docker] start docker-compose container
135136up : build
136137 {{ docker-compose}} up -d
137138
138- # [docker] get running container logs
139+ # [docker] get running container logs
139140logs :
140141 {{ docker-compose}} logs -tf --tail=" 50" {{ APP}}
141142
142- # [docker] ssh into container
143+ # [docker] ssh into container
143144exec :
144145 docker exec -it {{ APP}} {{ SHELL}}
145146
146- # [docker] stop docker-compose container
147+ # [docker] stop docker-compose container
147148stop :
148149 {{ docker-compose}} stop
149150
150- # [docker] remove docker-compose container(s) and networks
151+ # [docker] remove docker-compose container(s) and networks
151152down : stop
152153 {{ docker-compose}} down --remove-orphans
0 commit comments