Files
2020-10-21 11:48:51 +02:00

80 lines
2.4 KiB
Makefile

CLIENT=$(shell cat conf/parameters.yml | grep "client:" | awk '{print $$NF}' | sed 's/;$$//')
SRVNAME=$(shell cat conf/parameters.yml | grep "srvname:" | awk '{print $$NF}' | sed 's/;$$//')
DOCKERCOMPOSE := $(shell command -v docker-compose 2> /dev/null)
USAGE := Usage: make ENV={prod|preprod|dev} {docker-build|docker-start|docker-stop|docker-restart}
ifndef DOCKERCOMPOSE
$(error docker-compose is not available)
endif
ifndef ENV
$(info Environment variable is not set)
$(info $(USAGE))
$(error Exiting)
endif
DC_OVERRIDE := $(shell test -e conf/docker-compose.override.yml && echo "--file conf/docker-compose.override.yml")
DC_OVERRIDE_ENV := $(shell test -e conf/docker-compose.$(ENV).yml && echo "--file conf/docker-compose.$(ENV).yml")
DC=ENV=$(ENV) CLIENT=$(CLIENT) $(DOCKERCOMPOSE) --project-name "$(CLIENT)_$(ENV)" --file conf/docker-compose.yml $(DC_OVERRIDE) $(DC_OVERRIDE_ENV)
default:
$(info $(USAGE))
$(error Exiting)
docker-build:
$(DC) pull
$(DC) build
$(DC) up -d
docker-start:
$(DC) start
docker-stop:
$(DC) stop
docker-down:
$(DC) down
docker-restart: docker-stop docker-start
docker-rm: docker-stop
$(DC) rm
config:
@echo "Configuring docker for environment '$(ENV)'"
$(eval SERVER_NAME := $(shell cat volume/www/website/conf/nginx-$(ENV).conf | grep server_name | awk '{print $$NF}' | sed 's/;$$//'))
@echo " --> Generating nginx symlink for '$(SERVER_NAME)'"
@docker exec $(CLIENT).nginx.$(ENV) ln -s -f /home/www/website/conf/nginx-$(ENV).conf /home/www/website/conf/nginx.conf
@docker exec $(CLIENT).nginx.$(ENV) ln -s -f /home/www/website/conf/nginx.conf /etc/nginx/sites-enabled/$(SERVER_NAME).conf
@echo " --> Reloading nginx"
@docker exec $(CLIENT).nginx.$(ENV) nginx -t && docker exec $(CLIENT).nginx.$(ENV) nginx -s reload
config-folders:
@echo "---Init folders---"
mkdir -p volume/app
config-default-param:
@echo "---Init default parameters---"
cp conf/parameters.yml.sample conf/parameters.yml
config-master: config-folders config-default-param
pull-website:
git -C volume/www/website pull
config-db-root:
@echo " --> Generating mysql auth file"
@cat conf/env/mysql.env \
| python -c "import sys; import string; v=sys.stdin.readline().split('MYSQL_ROOT_PASSWORD=')[1]; print(string.Template(open('conf/build/mysql/my.cnf').read()).substitute({'PASSWORD':v}))" \
| docker exec -i $(CLIENT).mysql.$(ENV) sh -c 'cat > /root/.my.cnf'
generate-nginx-conf:
@conf/build/nginx/generate-conf.sh $(ENV) $(CLIENT).php.$(ENV)