Skip to content

Commit 0e46b9c

Browse files
committed
- [build](bld.mk) Harmonize [bld.mk](bld.mk) between repositories.
- [build](dkr.mk) Harmonize [dkr.mk](dkr.mk) between repositories. - [docker](src/docker) Added switch to set run as user [docker-service.sh](src/docker/bin/docker-service.sh).
1 parent 6da577c commit 0e46b9c

File tree

4 files changed

+56
-6
lines changed

4 files changed

+56
-6
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,12 @@
22

33
- [build](Dockerfile) Switch to php82 and make it a build argument: `--build-arg PHP_VER=php82`.
44
- [build](Makefile) Now set `DOCKER_BUILDKIT=1` since we don't use special symbolic links.
5+
- [build](bld.mk) Harmonize [bld.mk](bld.mk) between repositories.
6+
- [build](dkr.mk) Harmonize [dkr.mk](dkr.mk) between repositories.
7+
- [docker](src/docker) Added switch to set run as user [docker-service.sh](src/docker/bin/docker-service.sh).
58
- [docker](src/docker) Improve debug message in [docker-service.sh](src/docker/bin/docker-service.sh).
69

10+
711
# 1.1.6
812

913
- [build](Makefile) Now use alpine:3.18 (asterisk:18.15.1).

bld.mk

+18-4
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,15 @@ BLD_CMT ?= HEAD
1010
#
1111
# $(call bld_tags,mini,) -> mini mini-1.2.3 mini-1.2 mini-1
1212
# $(call bld_tags,full,) -> latest full 1.2.3 1.2 1 full-1.2.3 full-1.2 full-1
13+
# $(call bld_tags,,) -> latest 1.2.3 1.2 1
1314
#
1415
# $(call bld_tags,mini,something) -> mini-something
1516
# $(call bld_tags,full,something) -> something full-something
17+
# $(call bld_tags,,something) -> something
1618
#
1719
# $(call bld_tags,mini,latest) -> mini
1820
# $(call bld_tags,full,latest) -> latest full
21+
# $(call bld_tags,,latest) -> latest
1922
#
2023
bld_tags = $(if $(2),\
2124
$(call bld_ver,$(1),$(2)),\
@@ -24,20 +27,31 @@ $(call bld_ver,$(1),latest) $(call bld_ver,$(1),$(call bld_gittags)))
2427
#
2528
# $(call bld_ver,mini,something) -> mini-something
2629
# $(call bld_ver,full,something) -> something full-something
30+
# $(call bld_ver,,something) -> something
2731
#
2832
# $(call bld_ver,mini,latest) -> mini
2933
# $(call bld_ver,full,latest) -> latest full
34+
# $(call bld_ver,,latest) -> latest
3035
#
31-
bld_ver = $(if $(findstring $(BLD_TGT),$(1)),\
36+
bld_ver = $(if $(1),\
37+
$(if $(findstring $(BLD_TGT),$(1)),\
3238
$(if $(findstring latest,$(2)),latest $(1),$(2) $(addprefix $(1)-,$(2))),\
33-
$(if $(findstring latest,$(2)),$(1),$(addprefix $(1)-,$(2))))
39+
$(if $(findstring latest,$(2)),$(1),$(addprefix $(1)-,$(2)))),\
40+
$(2))
3441

3542
#
3643
# $(call bld_tag,full,) -> full
37-
# $(call bld_tag,full,latest) -> full
44+
# $(call bld_tag,,) -> latest
45+
#
3846
# $(call bld_tag,full,something) -> full-something
47+
# $(call bld_tag,,something) -> something
48+
#
49+
# $(call bld_tag,full,latest) -> full
50+
# $(call bld_tag,,latest) -> latest
3951
#
40-
bld_tag = $(if $(2),$(if $(findstring latest,$(2)),$(1),$(1)-$(2)),$(1))
52+
bld_tag = $(strip $(if $(1),\
53+
$(if $(2),$(if $(findstring latest,$(2)),$(1),$(1)-$(2)),$(1)),\
54+
$(if $(2),$(2),latest)))
4155

4256
#
4357
# $(call bld_gittags,HEAD) -> 1.2.3 1.2 1

dkr.mk

+26
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,32 @@ dkr_cnt_pid = $(shell docker inspect --format '{{.State.Pid}}' $(1))
3333
#
3434
dkr_img_env = $(shell docker inspect -f \
3535
'{{range .Config.Env}}{{println .}}{{end}}' $(1) | grep -P "^$(2)=" | sed 's/[^=]*=//'
36+
37+
#
38+
# $(call dkr_cnt_state,demo-app-1) -> docker inspect -f '{{.State.Status}}' demo-app-1
39+
#
40+
dkr_cnt_state = docker inspect -f '{{.State.Status}}' $(1)
41+
42+
#
43+
# $(call dkr_cnt_wait_run,test-db,180) -> i=0; time while ! [ "$(docker inspect -f '{{.State.Status}}' test-db)" = "running" ]; do sleep 1; i=$((i+1)); if [[ $i > 180 ]]; then echo test-db timeout with state: $(docker inspect -f '{{.State.Status}}' test-db); break; fi; done
44+
#
45+
dkr_cnt_wait_run = i=0; time while ! [ "$$($(call dkr_cnt_state, $(1)))" = "running" ]; do sleep 1; i=$$((i+1)); if [[ $$i > $(2) ]]; then echo $(1) timeout with state: $$($(call dkr_cnt_state, $(1))); break; fi; done
46+
47+
#
48+
# $(call dkr_srv_wait_run,180,app) -> wait up to 180s for app to enter state running
49+
#
50+
dkr_srv_wait_run = $(call dkr_cnt_wait_run,$(call dkr_srv_cnt $(1)),$(2))
51+
52+
#
53+
# $(call dkr_cnt_wait_log,app,ready for connections) -> time docker logs -f app | sed -n '/ready for connections/{p;q}'
54+
#
55+
dkr_cnt_wait_log = time docker logs -f $(1) 2>&1 | sed -n '/$(2)/{p;q}'
56+
57+
#
58+
# $(call dkr_pull_missing,mariadb:latest) -> if ! docker image inspect mariadb:latest &>/dev/null; then docker pull mariadb:latest; fi
59+
#
60+
dkr_pull_missing = if ! docker image inspect $(1) &>/dev/null; then docker pull $(1); fi
61+
3662
#
3763
# List IPs of containers
3864
#

src/docker/bin/docker-service.sh

+8-2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ usage() {
2727
-l activate logging (svlogd)
2828
-n name use this name instead of command
2929
-s file source file
30+
-u user run command as this user
3031
-q send stdout and stderr to /dev/null
3132
3233
EXAMPLES
@@ -60,17 +61,19 @@ init_service() {
6061
local redirstd=
6162
local clearpid=
6263
local sourcefile=
64+
local setuser=
6365
local sv_name cmd runsv_dir svlog_dir sv_log sv_down sv_force options
6466
dc_log 7 "Called with args $@"
6567
OPTIND=1
66-
while getopts ":dfhln:s:q" opts; do
68+
while getopts ":dfhln:s:u:q" opts; do
6769
case "${opts}" in
6870
d) sv_down="down"; add_opt "down";;
6971
f) sv_force="force"; add_opt "force";;
7072
h) usage; exit;;
7173
l) sv_log="log"; add_opt "log";;
7274
n) sv_name="${OPTARG}"; add_opt "name";;
7375
s) sourcefile=". ${OPTARG}"; add_opt "source";;
76+
u) sv_user="${OPTARG}"; add_opt "user";;
7477
q) redirstd="exec >/dev/null"; add_opt "quiet";;
7578
esac
7679
done
@@ -83,6 +86,9 @@ init_service() {
8386
if [ -n "$sv_force" ]; then
8487
forcepid="$(echo rm -f $(pid_name $sv_name)*)"
8588
fi
89+
if [ -n "$sv_user" ]; then
90+
setuser="chpst -u $sv_name"
91+
fi
8692
shift
8793
if [ ! -z "$cmd_path" ]; then
8894
dc_log 5 "Setting up ($sv_name) options ($options) cmd ($cmd_path) args ($@)"
@@ -93,7 +99,7 @@ init_service() {
9399
$forcepid
94100
$redirstd
95101
$sourcefile
96-
exec $cmd_path $@
102+
exec $setuser $cmd_path $@
97103
!cat
98104
chmod +x $runsv_dir/run
99105
if [ -n "$sv_down" ]; then

0 commit comments

Comments
 (0)