build(Makefile): load and use ci-images from tar file if present for frontend and backend
This commit is contained in:
parent
3151be6f41
commit
a6aaf533b4
1
.gitignore
vendored
1
.gitignore
vendored
@ -67,3 +67,4 @@ tunnel.log
|
||||
.develop.cmd
|
||||
/.vscode
|
||||
.ghc/ghci_history
|
||||
.azure-pipelines/images/*.tar
|
||||
|
||||
57
Makefile
57
Makefile
@ -16,6 +16,10 @@ export MEMCACHED_IMAGE = $(IMAGE_REGISTRY)/memcached:latest
|
||||
export MINIO_IMAGE = $(IMAGE_REGISTRY)/minio/minio:latest
|
||||
export MAILDEV_IMAGE = $(IMAGE_REGISTRY)/maildev/maildev:latest # TODO: needs different port than 1025 to avoid conflicts
|
||||
|
||||
export CI_IMAGE_DIR ?= ./.azure-pipelines/images
|
||||
export CI_IMAGE_REPO = devfra.azurecr.io/de.fraport.fradrive.build
|
||||
export PREFER_CI_IMAGES ?= true
|
||||
|
||||
export IN_CONTAINER ?= false
|
||||
export IN_CI ?= false
|
||||
export CONTAINER_FILE
|
||||
@ -31,9 +35,11 @@ export SERVICE
|
||||
export SERVICE_VARIANT ?= $(SERVICE)
|
||||
export JOB
|
||||
export IMAGE
|
||||
export IMAGE_FALLBACK
|
||||
export SET_IMAGE
|
||||
export ENTRYPOINT
|
||||
export EXEC_OPTS
|
||||
export IMAGE_PULL_POLICY?=missing
|
||||
|
||||
export STACK_CORES = $(shell echo $(($(CPU_CORES)/2)))
|
||||
export BASE_PORTS
|
||||
@ -112,24 +118,48 @@ start:
|
||||
.PHONY: %-backend
|
||||
%-backend: SERVICE=backend
|
||||
%-backend: SERVICE_VARIANT=backend
|
||||
%-backend: IMAGE=localhost/fradrive/backend
|
||||
ifeq ($(PREFER_CI_IMAGES),true)
|
||||
%-backend: IMAGE=$(CI_IMAGE_REPO)/backend
|
||||
%-backend: IMAGE_FALLBACK=localhost/fradrive/backend
|
||||
else
|
||||
%-backend: IMAGE=localhost/fradrive/backend
|
||||
endif
|
||||
%-backend: IMAGE_PULL_POLICY=never
|
||||
%-backend: BASE_PORTS = "DEV_PORT_HTTP=3000" "DEV_PORT_HTTPS=3443"
|
||||
|
||||
.PHONY: %-uniworxdb
|
||||
%-uniworxdb: SERVICE=backend
|
||||
%-uniworxdb: SERVICE_VARIANT=uniworxdb
|
||||
%-uniworxdb: IMAGE=localhost/fradrive/backend
|
||||
ifeq ($(PREFER_CI_IMAGES),true)
|
||||
%-uniworxdb: IMAGE=$(CI_IMAGE_REPO)/backend
|
||||
%-uniworxdb: IMAGE_FALLBACK=localhost/fradrive/backend
|
||||
else
|
||||
%-uniworxdb: IMAGE=localhost/fradrive/backend
|
||||
endif
|
||||
%-uniworxdb: IMAGE_PULL_POLICY=never
|
||||
|
||||
.PHONY: %-ghci
|
||||
%-ghci: SERVICE=backend
|
||||
%-ghci: SERVICE_VARIANT=ghci
|
||||
%-ghci: IMAGE=localhost/fradrive/backend
|
||||
ifeq ($(PREFER_CI_IMAGES),true)
|
||||
%-ghci: IMAGE=$(CI_IMAGE_REPO)/backend
|
||||
%-ghci: IMAGE_FALLBACK=localhost/fradrive/backend
|
||||
else
|
||||
%-ghci: IMAGE=localhost/fradrive/backend
|
||||
endif
|
||||
%-ghci: IMAGE_PULL_POLICY=never
|
||||
|
||||
.PHONY: %-hoogle
|
||||
%-hoogle: SERVICE=backend
|
||||
%-hoogle: SERVICE_VARIANT=hoogle
|
||||
%-hoogle: BASE_PORTS = "HOOGLE_PORT=8081"
|
||||
%-hoogle: IMAGE=localhost/fradrive/backend
|
||||
ifeq ($(PREFER_CI_IMAGES),true)
|
||||
%-hoogle: IMAGE=$(CI_IMAGE_REPO)/backend
|
||||
%-hoogle: IMAGE_FALLBACK=localhost/fradrive/backend
|
||||
else
|
||||
%-hoogle: IMAGE=localhost/fradrive/backend
|
||||
endif
|
||||
%-hoogle: IMAGE_PULL_POLICY=never
|
||||
--start-hoogle:
|
||||
HOOGLE_PORT=`cat $(CONTAINER_FILE) | grep 'HOOGLE_PORT=' | sed 's/HOOGLE_PORT=//'` ; \
|
||||
stack $(STACK_CORES) hoogle -- server --local --port $${HOOGLE_PORT}
|
||||
@ -137,23 +167,32 @@ start:
|
||||
.PHONY: %-frontend
|
||||
%-frontend: SERVICE=frontend
|
||||
%-frontend: SERVICE_VARIANT=frontend
|
||||
%-frontend: IMAGE=localhost/fradrive/frontend
|
||||
ifeq ($(PREFER_CI_IMAGES),true)
|
||||
%-frontend: IMAGE=$(CI_IMAGE_REPO)/frontend
|
||||
%-frontend: IMAGE_FALLBACK=localhost/fradrive/frontend
|
||||
else
|
||||
%-frontend: IMAGE=localhost/fradrive/frontend
|
||||
endif
|
||||
%-frontend: IMAGE_PULL_POLICY=never
|
||||
|
||||
.PHONY: %-postgres
|
||||
%-postgres: SERVICE=postgres
|
||||
%-postgres: SERVICE_VARIANT=postgres
|
||||
%-postgres: BASE_PORTS = "PGPORT=5432"
|
||||
# TODO: support ci-postgres images?
|
||||
%-postgres: IMAGE=localhost/fradrive/postgres
|
||||
|
||||
.PHONY: %-memcached
|
||||
%-memcached: SERVICE=memcached
|
||||
%-memcached: SERVICE_VARIANT=memcached
|
||||
# TODO: support ci-memcached images?
|
||||
%-memcached: SET_IMAGE=$$(MEMCACHED_IMAGE) --port=`cat $$(CONTAINER_FILE) | grep 'MEMCACHED_PORT=' | sed 's/MEMCACHED_PORT=//'`
|
||||
%-memcached: BASE_PORTS = "MEMCACHED_PORT=11211"
|
||||
|
||||
.PHONY: %-minio
|
||||
%-minio: SERVICE=minio
|
||||
%-minio: SERVICE_VARIANT=minio
|
||||
# TODO: support ci-minio images?
|
||||
%-minio: SET_IMAGE=$$(MINIO_IMAGE) -- server `mktemp` --address=:`cat $$(CONTAINER_FILE) | grep 'UPLOAD_S3_PORT=' | sed 's/UPLOAD_S3_PORT=//'`
|
||||
%-minio: BASE_PORTS = "UPLOAD_S3_PORT=9000"
|
||||
|
||||
@ -212,11 +251,13 @@ ghci: shell-ghci;
|
||||
$(MAKE) -- --$* CONTAINER_FILE=$${CONTAINER_FILE} CONTAINER_IDENT=$${CONTAINER_IDENT} JOB=$(JOB)
|
||||
|
||||
.PHONY: rebuild-%
|
||||
# HELP(rebuild-{backend,frontend,database,memcached,minio}): force-rebuild a given container image
|
||||
# HELP(rebuild-{backend,frontend,database,memcached,minio}): force-reload a given ci image, or (if not present) force-rebuild a given container image
|
||||
rebuild-%:
|
||||
$(MAKE) -- --image-build SERVICE=$* NO_CACHE=--no-cache
|
||||
--image-build:
|
||||
ifeq "$(IMAGE)" "localhost/fradrive/$(SERVICE)"
|
||||
ifeq "$(IMAGE)" "$(CI_IMAGE_REPO)/$(SERVICE)"
|
||||
$(CONTAINER_COMMAND) load --input="$(CI_IMAGE_DIR)/$(SERVICE).tar"
|
||||
else ifeq "$(IMAGE)" "localhost/fradrive/$(SERVICE)"
|
||||
rm -f .Dockerfile
|
||||
ln -s docker/$(SERVICE)/Dockerfile .Dockerfile
|
||||
PROJECT_DIR=/fradrive; \
|
||||
@ -227,6 +268,7 @@ ifeq "$(IMAGE)" "localhost/fradrive/$(SERVICE)"
|
||||
--env IN_CONTAINER=true \
|
||||
--env JOB=$(JOB) \
|
||||
--tag fradrive/$(SERVICE) \
|
||||
--pull=never \
|
||||
--file $(PWD)/.Dockerfile ; \
|
||||
fi
|
||||
else
|
||||
@ -245,6 +287,7 @@ endif
|
||||
fi ; \
|
||||
CONTAINER_ID=`$(CONTAINER_BGRUN) \
|
||||
-v $(PWD):$(PROJECT_DIR):rw \
|
||||
--pull=$(IMAGE_PULL_POLICY) \
|
||||
--env IN_CONTAINER=true \
|
||||
--env CONTAINER_FILE=$(CONTAINER_FILE) \
|
||||
--env CONTAINER_NAME=$${CONTAINER_NAME} \
|
||||
|
||||
Loading…
Reference in New Issue
Block a user