Skip to content
Snippets Groups Projects
Commit 15d430b0 authored by Thomas Juerges's avatar Thomas Juerges
Browse files

Add possibility to use env vars for settings

The environment variables that are considered are:
- TANGO_HOST
- NETWORK_MODE
- MYSQL_HOST
parent f2ec5332
No related branches found
No related tags found
1 merge request!21Small refactoring of the Makefile
...@@ -17,10 +17,12 @@ else ifeq (attach,$(firstword $(MAKECMDGOALS))) ...@@ -17,10 +17,12 @@ else ifeq (attach,$(firstword $(MAKECMDGOALS)))
ifndef NETWORK_MODE ifndef NETWORK_MODE
$(error NETWORK_MODE must specify the network to attach to, e.g., make NETWORK_MODE=tangonet-powersupply ...) $(error NETWORK_MODE must specify the network to attach to, e.g., make NETWORK_MODE=tangonet-powersupply ...)
endif endif
ifndef TANGO_HOST ifndef TANGO_HOST
$(error TANGO_HOST must specify the Tango database device, e.g., make TANGO_HOST=powersupply-databaseds:10000 ...) $(error TANGO_HOST must specify the Tango database device, e.g., make TANGO_HOST=powersupply-databaseds:10000 ...)
endif endif
endif endif
ifdef SERVICE_TARGET ifdef SERVICE_TARGET
# .. then use the rest as arguments for the make target # .. then use the rest as arguments for the make target
SERVICE := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) SERVICE := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
...@@ -46,6 +48,7 @@ ifeq ($(OS),Windows_NT) ...@@ -46,6 +48,7 @@ ifeq ($(OS),Windows_NT)
$(error Sorry, Windows is not supported yet) $(error Sorry, Windows is not supported yet)
else else
UNAME_S := $(shell uname -s) UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux) ifeq ($(UNAME_S),Linux)
DISPLAY ?= :0.0 DISPLAY ?= :0.0
NETWORK_MODE ?= host NETWORK_MODE ?= host
...@@ -53,8 +56,7 @@ else ...@@ -53,8 +56,7 @@ else
XAUTHORITY ?= /hosthome/.Xauthority XAUTHORITY ?= /hosthome/.Xauthority
# /bin/sh (=dash) does not evaluate 'docker network' conditionals correctly # /bin/sh (=dash) does not evaluate 'docker network' conditionals correctly
SHELL := /bin/bash SHELL := /bin/bash
endif else ifeq ($(UNAME_S),Darwin)
ifeq ($(UNAME_S),Darwin)
IF_INTERFACE := $(shell scutil --nwi | grep 'Network interfaces:' | cut -d' ' -f3) IF_INTERFACE := $(shell scutil --nwi | grep 'Network interfaces:' | cut -d' ' -f3)
IP_ADDRESS := $(shell scutil --nwi | grep 'address' | cut -d':' -f2 | tr -d ' ' | head -n1) IP_ADDRESS := $(shell scutil --nwi | grep 'address' | cut -d':' -f2 | tr -d ' ' | head -n1)
DISPLAY := $(IP_ADDRESS):0 DISPLAY := $(IP_ADDRESS):0
...@@ -62,7 +64,11 @@ else ...@@ -62,7 +64,11 @@ else
# allows X access from our Docker containers. # allows X access from our Docker containers.
ADD_TO_XHOST := $(shell xhost +$(IP_ADDRESS)) ADD_TO_XHOST := $(shell xhost +$(IP_ADDRESS))
# network_mode = host doesn't work on MacOS, so fix to the internal network # network_mode = host doesn't work on MacOS, so fix to the internal network
NETWORK_MODE ?= tangonet ifeq ($(NETWORK_MODE),)
NETWORK_MODE := tangonet
else
NETWORK_MODE := $(NETWORK_MODE)
endif
XAUTHORITY_MOUNT := $(HOME)/.Xauthority:/hosthome/.Xauthority:ro XAUTHORITY_MOUNT := $(HOME)/.Xauthority:/hosthome/.Xauthority:ro
XAUTHORITY := /hosthome/.Xauthority XAUTHORITY := /hosthome/.Xauthority
endif endif
...@@ -76,13 +82,29 @@ ifeq ($(NETWORK_MODE),host) ...@@ -76,13 +82,29 @@ ifeq ($(NETWORK_MODE),host)
TANGO_HOST := $(shell hostname):10000 TANGO_HOST := $(shell hostname):10000
MYSQL_HOST := $(shell hostname):3306 MYSQL_HOST := $(shell hostname):3306
else else
ifeq ($(TANGO_HOST),)
TANGO_HOST := $(CONTAINER_NAME_PREFIX)databaseds:10000 TANGO_HOST := $(CONTAINER_NAME_PREFIX)databaseds:10000
else
TANGO_HOST := $(TANGO_HOST)
endif
ifeq ($(MYSQL_HOST),)
MYSQL_HOST := $(CONTAINER_NAME_PREFIX)tangodb:3306 MYSQL_HOST := $(CONTAINER_NAME_PREFIX)tangodb:3306
else
MYSQL_HOST := $(MYSQL_HOST)
endif
endif endif
DOCKER_COMPOSE_ARGS := DISPLAY=$(DISPLAY) XAUTHORITY=$(XAUTHORITY) TANGO_HOST=$(TANGO_HOST) \ DOCKER_COMPOSE_ARGS := DISPLAY=$(DISPLAY) \
NETWORK_MODE=$(NETWORK_MODE) XAUTHORITY_MOUNT=$(XAUTHORITY_MOUNT) TANGO_SKA_CONTAINER_MOUNT=$(TANGO_SKA_CONTAINER_MOUNT) TANGO_LOFAR_CONTAINER_MOUNT=$(TANGO_LOFAR_CONTAINER_MOUNT) TANGO_LOFAR_CONTAINER_DIR=${TANGO_LOFAR_CONTAINER_DIR} MYSQL_HOST=$(MYSQL_HOST) \ XAUTHORITY=$(XAUTHORITY) \
CONTAINER_NAME_PREFIX=$(CONTAINER_NAME_PREFIX) COMPOSE_IGNORE_ORPHANS=true TANGO_HOST=$(TANGO_HOST) \
NETWORK_MODE=$(NETWORK_MODE) \
XAUTHORITY_MOUNT=$(XAUTHORITY_MOUNT) \
TANGO_SKA_CONTAINER_MOUNT=$(TANGO_SKA_CONTAINER_MOUNT) \
TANGO_LOFAR_CONTAINER_MOUNT=$(TANGO_LOFAR_CONTAINER_MOUNT) \
TANGO_LOFAR_CONTAINER_DIR=${TANGO_LOFAR_CONTAINER_DIR} MYSQL_HOST=$(MYSQL_HOST) \
CONTAINER_NAME_PREFIX=$(CONTAINER_NAME_PREFIX) \
COMPOSE_IGNORE_ORPHANS=true
.PHONY: up down minimal start stop status clean pull help .PHONY: up down minimal start stop status clean pull help
...@@ -127,4 +149,3 @@ clean: down ## clear all TANGO database entries ...@@ -127,4 +149,3 @@ clean: down ## clear all TANGO database entries
help: ## show this help. help: ## show this help.
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment