@@ -24,9 +24,13 @@ CGID ?= $(LOCAL_GID)
2424# Define network name.
2525COMPOSE_NET_NAME := $(COMPOSE_PROJECT_NAME ) _front
2626
27- # Determine mysql data directory if defined
28- ifeq ($(shell docker-compose config --services | grep mysql) ,mysql)
29- MYSQL_DIR=$(shell cd docker && realpath $(DB_DATA_DIR))/$(COMPOSE_PROJECT_NAME)_mysql
27+ SDC_SERVICES =$(shell docker-compose config --services)
28+ # Determine database data directory if defined
29+ ifeq ($(findstring mysql,$(SDC_SERVICES ) ) ,mysql)
30+ DB_MOUNT_DIR=$(shell cd docker && realpath $(DB_DATA_DIR))/$(COMPOSE_PROJECT_NAME)_mysql
31+ endif
32+ ifeq ($(findstring postgresql,$(SDC_SERVICES ) ) ,postgresql)
33+ DB_MOUNT_DIR=$(shell cd docker && realpath $(DB_DATA_DIR))/$(COMPOSE_PROJECT_NAME)_pgsql
3034endif
3135
3236# Define current directory only once
@@ -59,22 +63,26 @@ ifeq ($(strip $(COMPOSE_PROJECT_NAME)),projectname)
5963 $(info Please review your project settings and run `make all` again.)
6064 exit 1
6165endif
62- ifdef MYSQL_DIR
63- mkdir -p $(MYSQL_DIR ) && chmod 777 $(MYSQL_DIR )
66+ ifdef DB_MOUNT_DIR
67+ $(shell [ ! -d $(DB_MOUNT_DIR) ] && mkdir -p $(DB_MOUNT_DIR ) && chmod 777 $(DB_MOUNT_DIR) )
6468endif
6569 make -s down
6670 @echo "Updating containers..."
6771 docker-compose pull
6872 @echo "Build and run containers..."
73+ mkdir -p $(COMPOSER_HOME_CACHE)
6974 docker-compose up -d --remove-orphans
7075 $(call php-0, apk add --no-cache graphicsmagick $(ADD_PHP_EXT))
76+ $(call php-0, sh -c '[ ! -z "$$COMPOSER_HOME" -a -d $$COMPOSER_HOME ] && chown -R $(CUID):$(CGID) $$COMPOSER_HOME')
7177 $(call php-0, kill -USR2 1)
7278 $(call php, composer global require -o --update-no-dev --no-suggest "hirak/prestissimo:^0.3")
7379
7480# # Install backend dependencies
7581back :
7682 docker-compose up -d --remove-orphans php # PHP container is required for composer
77- ifeq ($(INSTALL_DEV_DEPENDENCIES ) , TRUE)
83+ $(call php-0, apk add --no-cache $(ADD_PHP_EXT ) )
84+ $(call php-0, kill -USR2 1)
85+ ifdef INSTALL_DEV_DEPENDENCIES
7886 @echo "INSTALL_DEV_DEPENDENCIES=$(INSTALL_DEV_DEPENDENCIES)"
7987 @echo "Installing composer dependencies, including dev ones"
8088 $(call php, composer install --prefer-dist -o)
@@ -142,9 +150,13 @@ clean: info
142150 make -s down
143151 $(eval SCAFFOLD = $(shell docker run --rm -v $(CURDIR ) :/mnt -w /mnt --user $(CUID ) :$(CGID ) $(IMAGE_PHP ) composer run-script list-scaffold-files | grep -P '^(?!>) ') )
144152 @docker run --rm --user 0:0 -v $(CURDIR ) :/mnt -w /mnt -e RMLIST=" $( addprefix web/,$( SCAFFOLD) ) $( DIRS) " $(IMAGE_PHP ) sh -c ' for i in $$RMLIST; do rm -fr $$i && echo "Removed $$i"; done'
145- ifdef MYSQL_DIR
146- @echo "Removing mysql data from $(MYSQL_DIR) ..."
147- docker run --rm --user 0:0 -v $(shell dirname $(MYSQL_DIR)):/mnt $(IMAGE_PHP) sh -c "rm -fr /mnt/`basename $(MYSQL_DIR)`"
153+ ifdef DB_MOUNT_DIR
154+ @echo "Clean-up database data from $(DB_MOUNT_DIR) ..."
155+ docker run --rm --user 0:0 -v $(shell dirname $(DB_MOUNT_DIR)):/mnt $(IMAGE_PHP) sh -c "rm -fr /mnt/`basename $(DB_MOUNT_DIR)`"
156+ endif
157+ ifdef COMPOSER_HOME_CACHE
158+ @echo "Clean-up composer cache from $(COMPOSER_HOME_CACHE) ..."
159+ docker run --rm --user 0:0 -v $(shell dirname $(abspath $(COMPOSER_HOME_CACHE))):/mnt $(IMAGE_PHP) sh -c "rm -fr /mnt/`basename $(COMPOSER_HOME_CACHE)`"
148160endif
149161ifeq ($(CLEAR_FRONT_PACKAGES ) , yes)
150162 make clear-front
0 commit comments