Skip to content

Commit a3975cd

Browse files
committed
All the targets required to run locally are podman enabled
1 parent db064e8 commit a3975cd

1 file changed

Lines changed: 72 additions & 2 deletions

File tree

build/automation/lib/docker.mk

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ COMPOSE_HTTP_TIMEOUT := $(or $(COMPOSE_HTTP_TIMEOUT), 6000)
4545
DOCKER_CLIENT_TIMEOUT := $(or $(DOCKER_CLIENT_TIMEOUT), 6000)
4646

4747
DOCKER_CMD=$(shell command -v docker >/dev/null 2>&1 && echo docker || echo podman)
48+
IS_PODMAN := $(shell [ "$(DOCKER_CMD)" = "podman" ] && echo true || echo false)
4849

4950
# ==============================================================================
5051

@@ -572,6 +573,75 @@ docker-run-python: ### Run python container - mandatory: CMD; optional: SH=true,
572573
"
573574
fi
574575

576+
####################################################################################################################################################
577+
# Enabling podman for docker-run-python target
578+
579+
# Detect Docker or Podman (default to Docker if both available)
580+
# docker-run-python: ### Run python container - works with Docker or Podman
581+
# make docker-config > /dev/null 2>&1
582+
# mkdir -p $(TMP_DIR)/.python/pip/{cache,packages}
583+
584+
# lib_volume_mount=$$(([ $(BUILD_ID) -eq 0 ] || [ "$(LIB_VOLUME_MOUNT)" = true ]) && echo "--volume $(TMP_DIR)/.python/pip/cache:/tmp/.cache/pip --volume $(TMP_DIR)/.python/pip/packages:/tmp/.packages" ||:)
585+
586+
# image=$$([ -n "$(IMAGE)" ] && echo $(IMAGE) || echo python:$(DOCKER_PYTHON_VERSION))
587+
588+
# container=$$([ -n "$(CONTAINER)" ] && echo $(CONTAINER) || echo python-$(BUILD_COMMIT_HASH)-$(BUILD_ID)-$$(date -u +"%Y%m%d%H%M%S")-$$(make secret-random LENGTH=8))
589+
590+
# # Handle env-files
591+
# if [ "$(IS_PODMAN)" = "true" ]; then \
592+
# envfile1=$$(mktemp); make _list-variables PATTERN="^(AWS|TX|TEXAS|NHSD|TERRAFORM)" > $$envfile1; \
593+
# envfile2=$$(mktemp); make _list-variables PATTERN="^(DB|DATABASE|SMTP|APP|APPLICATION|UI|API|SERVER|HOST|URL)" > $$envfile2; \
594+
# envfile3=$$(mktemp); make _list-variables PATTERN="^(PROFILE|ENVIRONMENT|BUILD|PROGRAMME|ORG|SERVICE|PROJECT)" > $$envfile3; \
595+
# envfile4=$$(mktemp); make _docker-get-variables-from-file VARS_FILE=$(VARS_FILE) > $$envfile4; \
596+
# env_files="--env-file=$$envfile1 --env-file=$$envfile2 --env-file=$$envfile3 --env-file=$$envfile4"; \
597+
# else \
598+
# env_files="--env-file=<(make _list-variables PATTERN=\"^(AWS|TX|TEXAS|NHSD|TERRAFORM)\") \
599+
# --env-file=<(make _list-variables PATTERN=\"^(DB|DATABASE|SMTP|APP|APPLICATION|UI|API|SERVER|HOST|URL)\") \
600+
# --env-file=<(make _list-variables PATTERN=\"^(PROFILE|ENVIRONMENT|BUILD|PROGRAMME|ORG|SERVICE|PROJECT)\") \
601+
# --env-file=<(make _docker-get-variables-from-file VARS_FILE=$(VARS_FILE))"; \
602+
# fi; \
603+
604+
# # Choose shell or not
605+
# if [[ ! "$(SH)" =~ ^(true|yes|y|on|1|TRUE|YES|Y|ON)$$ ]]; then \
606+
# eval $$(echo $(DOCKER_CMD)) run --interactive $(_TTY) --rm \
607+
# --name $$container \
608+
# --user $$(id -u):$$(id -g) \
609+
# $$env_files \
610+
# --env PIP_TARGET=/tmp/.packages \
611+
# --env PYTHONPATH=/tmp/.packages \
612+
# --env XDG_CACHE_HOME=/tmp/.cache \
613+
# --volume $(PROJECT_DIR):/project$(if $(filter podman,$(DOCKER_CMD)),:Z,) \
614+
# $$lib_volume_mount \
615+
# --network $(DOCKER_NETWORK) \
616+
# --workdir /project/$(shell echo $(abspath $(DIR)) | sed "s;$(PROJECT_DIR);;g") \
617+
# $(ARGS) \
618+
# $$image \
619+
# $(CMD); \
620+
# else \
621+
# eval $$(echo $(DOCKER_CMD)) run --interactive $(_TTY) --rm \
622+
# --name $$container \
623+
# --user $$(id -u):$$(id -g) \
624+
# $$env_files \
625+
# --env PIP_TARGET=/tmp/.packages \
626+
# --env PYTHONPATH=/tmp/.packages \
627+
# --env XDG_CACHE_HOME=/tmp/.cache \
628+
# --volume $(PROJECT_DIR):/project$(if $(filter podman,$(DOCKER_CMD)),:Z,) \
629+
# $$lib_volume_mount \
630+
# --network $(DOCKER_NETWORK) \
631+
# --workdir /project/$(shell echo $(abspath $(DIR)) | sed "s;$(PROJECT_DIR);;g") \
632+
# $(ARGS) \
633+
# $$image \
634+
# /bin/sh -c "$(CMD)"; \
635+
# fi; \
636+
637+
# # Cleanup temp env files
638+
# if [ "$(IS_PODMAN)" = "true" ]; then \
639+
# rm -f $$envfile1 $$envfile2 $$envfile3 $$envfile4; \
640+
# fi
641+
642+
643+
####################################################################################################################################################
644+
575645
docker-run-sonar-scanner-cli: ### Run sonar-scanner-cli container - mandatory: CMD; optional: SH=true,DIR,ARGS=[Docker args],VARS_FILE=[Makefile vars file],IMAGE=[image name],CONTAINER=[container name]
576646
make docker-config > /dev/null 2>&1
577647
mkdir -p $(TMP_DIR)/.sonar/cache
@@ -615,7 +685,7 @@ docker-run-terraform-tfsec: ### Run terraform tfsec container - optional: DIR,AR
615685
make docker-config > /dev/null 2>&1
616686
image=$$([ -n "$(IMAGE)" ] && echo $(IMAGE) || echo aquasec/tfsec:$(DOCKER_TERRAFORM_TFSEC_VERSION))
617687
container=$$([ -n "$(CONTAINER)" ] && echo $(CONTAINER) || echo tfsec-$(BUILD_COMMIT_HASH)-$(BUILD_ID)-$$(date --date=$$(date -u +"%Y-%m-%dT%H:%M:%S%z") -u +"%Y%m%d%H%M%S" 2> /dev/null)-$$(make secret-random LENGTH=8))
618-
docker run --interactive $(_TTY) --rm \
688+
$(DOCKER_CMD) run --interactive $(_TTY) --rm \
619689
--name $$container \
620690
--user $$(id -u):$$(id -g) \
621691
--env-file <(make _list-variables PATTERN="^(AWS|TX|TEXAS|NHSD|TERRAFORM)") \
@@ -634,7 +704,7 @@ docker-run-checkov: ### Run checkov container - optional: DIR,ARGS=[Docker args]
634704
make docker-config > /dev/null 2>&1
635705
image=$$([ -n "$(IMAGE)" ] && echo $(IMAGE) || echo bridgecrew/checkov:$(DOCKER_CHECKOV_VERSION))
636706
container=$$([ -n "$(CONTAINER)" ] && echo $(CONTAINER) || echo tfsec-$(BUILD_COMMIT_HASH)-$(BUILD_ID)-$$(date --date=$$(date -u +"%Y-%m-%dT%H:%M:%S%z") -u +"%Y%m%d%H%M%S" 2> /dev/null)-$$(make secret-random LENGTH=8))
637-
docker run --interactive $(_TTY) --rm \
707+
$(DOCKER_CMD) run --interactive $(_TTY) --rm \
638708
--name $$container \
639709
--user $$(id -u):$$(id -g) \
640710
--env-file <(make _list-variables PATTERN="^(AWS|TX|TEXAS|NHSD|TERRAFORM)") \

0 commit comments

Comments
 (0)