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)