Compare commits

...

5 Commits

View File

@ -7,6 +7,8 @@ export CONTAINER_COMMAND ?= podman
export CONTAINER_BGRUN ?= $(CONTAINER_COMMAND) run -dit --network=host
export CONTAINER_FGRUN ?= $(CONTAINER_COMMAND) run -it --network=host
export CONTAINER_NAME ?= $(FRADRIVE_SERVICE)
export IN_CONTAINER ?= false
export IN_CI ?= false
@ -59,7 +61,7 @@ help:
clean:
$(MAKE) stop
-rm -rf node_modules .npm .cache assets/icons assets/favicons static well-known
-rm -rf .stack-work .stack-work-build .stack-work-run .stack-work-test .stack-work-doc
-rm -rf .stack-work .stack-work-build .stack-work-run .stack-work-test .stack-work-doc .stack-work.lock
-rm -rf bin .Dockerfile develop
-$(CONTAINER_COMMAND) container prune --force
.PHONY: clean-all
@ -198,9 +200,10 @@ well-known: static;
.PHONY: db
# HELP: clear and fill database. requires running postgres
db: FRADRIVE_SERVICE=backend
db: CONTAINER_NAME=uniworxdb
db: --image-build --containerized---db;
# TODO (db-m-$MIGRATION-backend): apply migration (see src/Model/Migration/Definition.hs for list of available migrations)
--db-backend: .stack
--db-backend: .stack --compile-backend
SERVER_SESSION_ACID_FALLBACK=${SERVER_SESSION_ACID_FALLBACK:-true} ; \
AVSPASS=${AVSPASS:-nopasswordset} ; \
stack --work-dir .stack-work-build exec uniworxdb -- $(UNIWORXDB_OPTS)
@ -243,9 +246,15 @@ db: --image-build --containerized---db;
--containerized-%-backend: FRADRIVE_SERVICE=backend
--containerized-%-backend: --image-build
$(MAKE) -- --image-run-$*-backend
--containerized-%-hoogle: CONTAINER_NAME=hoogle
--containerized-%-hoogle: --containerized-%-hoogle-backend;
--containerized---db: CONTAINER_NAME=uniworxdb
--containerized---db: --containerized-db-backend;
--containerized-%-database: FRADRIVE_SERVICE=database
--containerized-%-database: --image-build
$(MAKE) -- --image-run-$*-database
# --containerized-%-minio: FRADRIVE_SERVICE=minio
# --containerized-%-minio: --image-build
# $(MAKE) -- --image-run-$*-minio
@ -265,10 +274,6 @@ db: --image-build --containerized---db;
CONTAINER_ID=`$(CONTAINER_BGRUN) --name fradrive.memcached.$$(date +'%Y-%m-%dT%H-%M-%S') $(MEMCACHED_IMAGE) --port=$${MEMCACHED_PORT}` ; \
printf "CONTAINER_ID=$${CONTAINER_ID}\nMEMCACHED_PORT=$${MEMCACHED_PORT}" >> $(CONTAINER_FILE)
--containerized-%-database: FRADRIVE_SERVICE=database
--containerized-%-database: --image-build
$(MAKE) -- --image-run-$*-database
.PHONY: image-rebuild
# HELP(image-rebuild-{backend,frontend,database,memcached,minio}): force-rebuild the stated docker image
image-rebuild-%:
@ -285,16 +290,17 @@ image-rebuild-%:
$(CONTAINER_COMMAND) build $(NO_CACHE) -v $(PWD):$${MOUNT_DIR} --env IN_CONTAINER=true --build-arg MOUNT_DIR=$${MOUNT_DIR} --build-arg PROJECT_DIR=$${PROJECT_DIR} --tag fradrive/$(FRADRIVE_SERVICE) --file $(PWD)/.Dockerfile ; \
fi
--image-run-%: CONTAINER_NAME ?= $(FRADRIVE_SERVICE)
--image-run-%: docker/$(FRADRIVE_SERVICE)/Dockerfile
MOUNT_DIR=/mnt/fradrive; \
if [ "$(IN_CONTAINER)" == "true" ] ; then \
$(MAKE) -- $* ; \
else \
if [ -z "$(CONTAINER_FILE)" ] ; then \
$(CONTAINER_FGRUN) -v $(PWD):$${MOUNT_DIR} --env IN_CONTAINER=true --env FRADRIVE_MAKE_TARGET=$* --env CONTAINER_FILE=$(CONTAINER_FILE) --env CONTAINER_FILE_CONTENT=$(CONTAINER_FILE_CONTENT) --env WATCH=$(WATCH) --name fradrive.$(FRADRIVE_SERVICE).$$(date +'%Y-%m-%dT%H-%M-%S') localhost/fradrive/$(FRADRIVE_SERVICE) ; \
$(CONTAINER_FGRUN) -v $(PWD):$${MOUNT_DIR} --env IN_CONTAINER=true --env FRADRIVE_MAKE_TARGET=$* --env CONTAINER_FILE=$(CONTAINER_FILE) --env CONTAINER_FILE_CONTENT=$(CONTAINER_FILE_CONTENT) --env WATCH=$(WATCH) --name fradrive.$(CONTAINER_NAME).$$(date +'%Y-%m-%dT%H-%M-%S') localhost/fradrive/$(FRADRIVE_SERVICE) ; \
else \
./utils/watchcontainerrun.sh "$(CONTAINER_COMMAND)" "$(CONTAINER_FILE)" & \
CONTAINER_ID=`$(CONTAINER_BGRUN) -v $(PWD):$${MOUNT_DIR} --env IN_CONTAINER=true --env FRADRIVE_MAKE_TARGET=$* --env CONTAINER_FILE=$(CONTAINER_FILE) --env CONTAINER_FILE_CONTENT=$(CONTAINER_FILE_CONTENT) --env WATCH=$(WATCH) --name fradrive.$(FRADRIVE_SERVICE).$$(date +'%Y-%m-%dT%H-%M-%S') localhost/fradrive/$(FRADRIVE_SERVICE)` ; \
CONTAINER_ID=`$(CONTAINER_BGRUN) -v $(PWD):$${MOUNT_DIR} --env IN_CONTAINER=true --env FRADRIVE_MAKE_TARGET=$* --env CONTAINER_FILE=$(CONTAINER_FILE) --env CONTAINER_FILE_CONTENT=$(CONTAINER_FILE_CONTENT) --env WATCH=$(WATCH) --name fradrive.$(CONTAINER_NAME).$$(date +'%Y-%m-%dT%H-%M-%S') localhost/fradrive/$(FRADRIVE_SERVICE)` ; \
echo "CONTAINER_ID=$${CONTAINER_ID}" >> "$(CONTAINER_FILE)"; \
fi \
fi