Skip to content

Instantly share code, notes, and snippets.

@FredNandrin
Created October 27, 2017 17:31
Show Gist options
  • Save FredNandrin/3ee12a22837e60fa34ec6449ccf310f7 to your computer and use it in GitHub Desktop.
Save FredNandrin/3ee12a22837e60fa34ec6449ccf310f7 to your computer and use it in GitHub Desktop.
Basic makefile for docker stack with symfony
#
# Run `make ENVIRONMENT=machinename` to override the default
#
ENVIRONMENT=default
TLS_VERIFY=$(shell docker-machine env $(ENVIRONMENT) | grep 'DOCKER_TLS_VERIFY=".*"' | cut -d\" -f2)
HOST=$(shell docker-machine env $(ENVIRONMENT) | grep 'DOCKER_HOST=".*"' | cut -d\" -f2)
CERT_PATH=$(shell docker-machine env $(ENVIRONMENT) | grep 'DOCKER_CERT_PATH=".*"' | cut -d\" -f2)
MACHINE_NAME=$(shell docker-machine env $(ENVIRONMENT) | grep 'DOCKER_MACHINE_NAME=".*"' | cut -d\" -f2)
DOCKER_MACHINE_NAME=$(MACHINE_NAME)
DOCKER_TLS_VERIFY=$(TLS_VERIFY)
DOCKER_HOST=$(HOST)
DOCKER_CERT_PATH=$(CERT_PATH)
# MySQL
MYSQL_DUMPS_DIR=data/db/dumps
help:
@echo ""
@echo "usage: make COMMAND"
@echo ""
@echo "Commands:"
@echo " docker-start Create and start containers"
@echo " docker-stop Stop and clear all services"
@echo " docker-logs Follow log output"
@echo " ccl Cache clear on symfony app"
@echo " mysql-dump Create backup of whole database"
@echo " mysql-restore Restore backup from whole database"
docker-start: init
docker-compose up -d
make ccl
docker-stop:
@docker-compose down -v
docker-logs:
@docker-compose logs -f
mysql-dump:
@mkdir -p $(MYSQL_DUMPS_DIR)
@docker-compose exec -T db mysqldump --all-databases -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" > $(MYSQL_DUMPS_DIR)/db.sql 2>/dev/null
@make resetOwner
mysql-restore:
docker-compose exec -T db mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < $(MYSQL_DUMPS_DIR)/db.sql
ccl:
@docker-compose exec -T php ./bin/console c:cl --no-warmup
@docker-compose exec -T php ./bin/console c:cl --no-warmup --env=prod
@make resetOwner
resetOwner:
@$(shell chown -Rf $(SUDO_USER):$(id -g -n $(SUDO_USER)) $(MYSQL_DUMPS_DIR) "$(pwd)/etc/ssl" "$(pwd)/web/app" 2> /dev/null)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment