Compare commits
7 Commits
46596fc5f6
...
995c258aa5
| Author | SHA1 | Date | |
|---|---|---|---|
| 995c258aa5 | |||
| bd9af70a97 | |||
| 465c40b927 | |||
| 6f11b8c453 | |||
| 86ec9e9d54 | |||
| 78fe3e7956 | |||
| ad8a8c3cac |
@@ -18,13 +18,13 @@ container_image_name = $(REGISTRY_DOMAIN)/$(REGISTRY_USER)/joeac.net-$(module)
|
|||||||
define build_module_rule =
|
define build_module_rule =
|
||||||
.PHONY: build_$(module)
|
.PHONY: build_$(module)
|
||||||
build_$(module): make_$(module) $(module).Dockerfile
|
build_$(module): make_$(module) $(module).Dockerfile
|
||||||
sudo podman-compose build $(module)
|
podman-compose build $(module)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define push_module_rule =
|
define push_module_rule =
|
||||||
.PHONY: push_$(module)
|
.PHONY: push_$(module)
|
||||||
push_$(module): login_registry build_$(module)
|
push_$(module): login_registry build_$(module)
|
||||||
sudo podman push $(container_image_name)
|
podman push $(container_image_name)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define make_module_rule =
|
define make_module_rule =
|
||||||
@@ -52,7 +52,41 @@ $(foreach module,$(MODULES),$(eval $(call module_env_rule)))
|
|||||||
|
|
||||||
.PHONY: login_registry
|
.PHONY: login_registry
|
||||||
login_registry:
|
login_registry:
|
||||||
sudo podman login $(REGISTRY_DOMAIN)
|
podman login $(REGISTRY_DOMAIN)
|
||||||
|
|
||||||
|
.PHONY: install
|
||||||
|
install: install_service install_crontab
|
||||||
|
|
||||||
|
.PHONY: uninstall
|
||||||
|
uninstall: uninstall_service uninstall_crontab
|
||||||
|
|
||||||
|
.PHONY: install_service
|
||||||
|
install_service: ~/.config/rc/init.d/joeac.net
|
||||||
|
|
||||||
|
~/.config/rc/init.d/joeac.net: openrc/joeac.net
|
||||||
|
rm -f ~/.config/rc/init.d/joeac.net; \
|
||||||
|
mkdir -p ~/.config/rc/init.d; \
|
||||||
|
cp openrc/joeac.net ~/.config/rc/init.d/joeac.net \
|
||||||
|
&& rc-update -U add joeac.net \
|
||||||
|
&& rc-service -U joeac.net start; \
|
||||||
|
|
||||||
|
.PHONY: uninstall_service
|
||||||
|
uninstall_service:
|
||||||
|
rc-service -U joeac.net stop \
|
||||||
|
&& rc-update -U del joeac.net \
|
||||||
|
&& rm -f ~/.config/rc/init.d/joeac.net; \
|
||||||
|
|
||||||
|
.PHONY: install_crontab
|
||||||
|
install_crontab: /etc/periodic/daily/joeac.net
|
||||||
|
|
||||||
|
.PHONY: uninstall_crontab
|
||||||
|
uninstall_crontab:
|
||||||
|
sudo rm -f /etc/periodic/daily/joeac.net
|
||||||
|
|
||||||
|
/etc/periodic/daily/joeac.net:
|
||||||
|
echo "@daily $(shell whoami) git -C /usr/local/lib/joeac.net pull && $(MAKE) --directory /usr/local/lib/joeac.net && rc-service joeac.net restart" \
|
||||||
|
> crontab.tmp
|
||||||
|
sudo mv crontab.tmp /etc/periodic/daily/joeac.net
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
+5
-5
@@ -94,17 +94,17 @@ endef
|
|||||||
# RULES #
|
# RULES #
|
||||||
#########
|
#########
|
||||||
|
|
||||||
all: bin/pp $(blogs) public out vendor
|
all: $(blogs) public out vendor
|
||||||
$(MAKE) out # if blog posts have been pruned, outfiles must be re-calculated
|
$(MAKE) out # if blog posts have been pruned, outfiles must be re-calculated
|
||||||
|
|
||||||
bin/pp:
|
|
||||||
cd pp && $(MAKE) && cp pp ../bin/pp
|
|
||||||
|
|
||||||
share/man/man1/pp.1:
|
share/man/man1/pp.1:
|
||||||
cp pp/pp.1 share/man/man1/pp.1
|
cp pp/pp.1 share/man/man1/pp.1
|
||||||
|
|
||||||
.PHONY: out
|
.PHONY: out
|
||||||
out: $(out_deps)
|
out: bin/pp $(out_deps)
|
||||||
|
|
||||||
|
bin/pp:
|
||||||
|
cd pp && $(MAKE) && chmod +x pp && cp pp ../bin/pp
|
||||||
|
|
||||||
$(foreach ext,$(sort $(out_deps_ext)),\
|
$(foreach ext,$(sort $(out_deps_ext)),\
|
||||||
$(eval $(out_rule)))
|
$(eval $(out_rule)))
|
||||||
|
|||||||
Executable
+63
@@ -0,0 +1,63 @@
|
|||||||
|
#!/sbin/openrc-run
|
||||||
|
# credits:
|
||||||
|
# https://gist.github.com/itzwam/2069e935385193207f7e5bea7156e21d
|
||||||
|
# https://github.com/0x17de/dockerservice-openrc
|
||||||
|
|
||||||
|
: ${SRCDIR:=/usr/local/lib/joeac.net}
|
||||||
|
DOCKER_COMPOSE_UP_ARGS=${DOCKER_COMPOSE_UP_ARGS-"--no-build --no-recreate --no-deps"}
|
||||||
|
|
||||||
|
[ -z "${SVCNAME}" ] && exit 1
|
||||||
|
: ${COMPOSEFILE:="${SRCDIR}/compose.yml"}
|
||||||
|
: ${MAKEFILE:="${SRCDIR}/Makefile"}
|
||||||
|
COMPOSECMD="/usr/bin/podman-compose"
|
||||||
|
export COMPOSE_HTTP_TIMEOUT=300
|
||||||
|
|
||||||
|
description="Manage dockerservices defined in ${COMPOSEFILE}"
|
||||||
|
extra_commands="configtest"
|
||||||
|
description_configtest="Check configuration via \"podman-compose -f ${COMPOSEFILE} config\""
|
||||||
|
|
||||||
|
configtest() {
|
||||||
|
if ! [ -f "${COMPOSEFILE}" ]; then
|
||||||
|
eerror "The docker-compose file ${COMPOSEFILE} does not exist!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if "${COMPOSECMD}" -f "${COMPOSEFILE}" config >&/dev/null; then
|
||||||
|
einfo "config: ok"
|
||||||
|
else
|
||||||
|
eerror "config: error"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
configtest || return 1
|
||||||
|
ebegin "Starting ${SVCNAME}"
|
||||||
|
"${COMPOSECMD}" -f "${COMPOSEFILE}" up -d ${DOCKER_COMPOSE_UP_ARGS}
|
||||||
|
eend $?
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
ebegin "Stopping ${SVCNAME}"
|
||||||
|
"${COMPOSECMD}" -f "${COMPOSEFILE}" stop --timeout=300
|
||||||
|
eend $?
|
||||||
|
}
|
||||||
|
|
||||||
|
status() {
|
||||||
|
pods=0
|
||||||
|
started=0
|
||||||
|
while read pod; do
|
||||||
|
pods=$(($pods+1))
|
||||||
|
if podman top $pod &>/dev/null; then
|
||||||
|
einfo "status: [$pod] started"
|
||||||
|
started=$(($started+1))
|
||||||
|
else
|
||||||
|
einfo "status: [$pod] stopped"
|
||||||
|
fi
|
||||||
|
done < <("${COMPOSECMD}" -f "${COMPOSEFILE}" ps --quiet)
|
||||||
|
if [ $started -eq $pods ]; then
|
||||||
|
einfo "status: started"
|
||||||
|
else
|
||||||
|
einfo "status: stopped"
|
||||||
|
return 3
|
||||||
|
fi
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user