build(Makefile): refactor container run calls

This commit is contained in:
Sarah Vaupel 2024-10-07 13:07:17 +02:00
parent 3db65597fe
commit 848985cbb5

View File

@ -2,17 +2,21 @@ SHELL=bash
# MAKE=make -d
export CONTAINER_COMMAND ?= podman
export CONTAINER_PORTS ?= --network=host
export CONTAINER_RUN ?= $(CONTAINER_COMMAND) run -it --network=host
export IN_CONTAINER ?= false
export IN_CI ?= false
export WATCH
export db ?= -cf
export DEV_PORT_HTTP
export DEV_PORT_HTTPS
export MEMCACHED_IMAGE = docker.io/memcached:latest
export MINIO_IMAGE = docker.io/minio/minio:latest
export MAILDEV_IMAGE = docker.io/maildev/maildev:latest
export IMAGE_REGISTRY = docker.io
export MEMCACHED_IMAGE = $(IMAGE_REGISTRY)/memcached:latest
export MINIO_IMAGE = $(IMAGE_REGISTRY)/minio/minio:latest
export MAILDEV_IMAGE = $(IMAGE_REGISTRY)/maildev/maildev:latest
# HELP HEADER START
# To see the definition of all available targets, take a look into the Makefile.
@ -33,7 +37,7 @@ export MAILDEV_IMAGE = docker.io/maildev/maildev:latest
# HELP: print out this help message
help:
@if [ -z "$$(which perl 2>/dev/null)" ] ; then \
$(CONTAINER_COMMAND) run -v .:/mnt 'debian:12.5' '/mnt/utils/makehelp.pl' '/mnt/Makefile' ; \
$(CONTAINER_RUN) .:/mnt 'debian:12.5' '/mnt/utils/makehelp.pl' '/mnt/Makefile' ; \
else \
utils/makehelp.pl Makefile ; \
fi
@ -66,7 +70,7 @@ release:
MOUNT_DIR=/mnt/fradrive ; \
FRADRIVE_SERVICE=$* ; \
$(MAKE) -- --image-build FRADRIVE_SERVICE=$${FRADRIVE_SERVICE} ; \
$(CONTAINER_COMMAND) run -it -v $(PWD):$${MOUNT_DIR} $(CONTAINER_PORTS) --env IN_CONTAINER=true --entrypoint /bin/bash --name fradrive.$${FRADRIVE_SERVICE}.interactive.$$(date +'%Y-%m-%dT%H-%M-%S') fradrive/$${FRADRIVE_SERVICE}
$(CONTAINER_RUN) -v $(PWD):$${MOUNT_DIR} --env IN_CONTAINER=true --entrypoint /bin/bash --name fradrive.$${FRADRIVE_SERVICE}.interactive.$$(date +'%Y-%m-%dT%H-%M-%S') fradrive/$${FRADRIVE_SERVICE}
##### GENERAL TARGETS #####
###########################
@ -214,10 +218,6 @@ PHONY: --db-%-backend
--.stack: stack.yaml stack.yaml.lock
stack build --fast --only-dependencies $(stackopts)
# TODO: deprecated, remove
# .stack-work.lock:
# [ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock -en .stack-work.lock "$0" "$@" || :
##### BACKEND TARGETS #####
###########################
@ -231,19 +231,18 @@ serve-database: --containerized-database;
--containerized-database: FRADRIVE_SERVICE=database
# port forwarding is disabled in --network=host mode; nevertheless it is stated here for documentation reasons
# --containerized-database: CONTAINER_PORTS=--network=host -p 5432:5432/tcp
--containerized-database: docker/database/initdb.sh docker/database/pg_hba.conf docker/database/postgresql.conf docker/database/schema.sql --image-build
if [ "$(IN_CONTAINER)" == "false" ] ; then \
$(CONTAINER_COMMAND) run -it $(CONTAINER_PORTS) --name fradrive.$(FRADRIVE_SERVICE).$$(date +'%Y-%m-%dT%H-%M-%S') fradrive/$(FRADRIVE_SERVICE) ; \
$(CONTAINER_RUN) --name fradrive.$(FRADRIVE_SERVICE).$$(date +'%Y-%m-%dT%H-%M-%S') fradrive/$(FRADRIVE_SERVICE) ; \
fi
.PHONY: serve-memcached
serve-memcached:
$(CONTAINER_COMMAND) run -it --network=host $(MEMCACHED_IMAGE)
$(CONTAINER_RUN) $(MEMCACHED_IMAGE)
.PHONY: serve-minio
serve-minio:
$(CONTAINER_COMMAND) run -it --network=host $(MINIO_IMAGE) -- server $$(mktemp)
$(CONTAINER_RUN) $(MINIO_IMAGE) -- server $$(mktemp)
##### DATABASE TARGETS #####
############################
@ -254,13 +253,10 @@ serve-minio:
.PHONY: --containerized-%-frontend
--containerized-%-frontend: FRADRIVE_SERVICE=frontend
#--containerized-%-frontend: --image-build --image-run-%-frontend;
--containerized-%-frontend: --image-build
$(MAKE) -- --image-run-$*-frontend
--containerized-%-backend: FRADRIVE_SERVICE=backend
#--containerized-%-backend: --image-build --image-run-%-backend;
# --containerized-%-backend: CONTAINER_PORTS=--network=host -p $(DEV_PORT_HTTP):3000 -p $(DEV_PORT_HTTPS):3443
--containerized-%-backend: --image-build
$(MAKE) -- --image-run-$*-backend
@ -285,7 +281,7 @@ image-rebuild-%:
if [ "$(IN_CONTAINER)" == "true" ] ; then \
$(MAKE) -- $* ; \
else \
$(CONTAINER_COMMAND) run -it -v $(PWD):$${MOUNT_DIR} $(CONTAINER_PORTS) --env IN_CONTAINER=true --env FRADRIVE_MAKE_TARGET=$* --env WATCH=$(WATCH) --name fradrive.$(FRADRIVE_SERVICE).$$(date +'%Y-%m-%dT%H-%M-%S') localhost/fradrive/$(FRADRIVE_SERVICE) ; \
$(CONTAINER_RUN) -v $(PWD):$${MOUNT_DIR} --env IN_CONTAINER=true --env FRADRIVE_MAKE_TARGET=$* --env WATCH=$(WATCH) --name fradrive.$(FRADRIVE_SERVICE).$$(date +'%Y-%m-%dT%H-%M-%S') localhost/fradrive/$(FRADRIVE_SERVICE) ; \
fi
##### CONTAINER TARGETS #####