Skip to content

Commit c0907a3

Browse files
committed
Add postgresql & improve composer
1 parent cf96c87 commit c0907a3

File tree

3 files changed

+38
-8
lines changed

3 files changed

+38
-8
lines changed

.env.default

+3
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,14 @@ IMAGE_REDIS=redis:5-alpine
1818
IMAGE_DRIVER=zenika/alpine-chrome
1919
CLEAR_FRONT_PACKAGES=no
2020
ADD_PHP_EXT=
21+
#ADD_PHP_EXT=php7-pdo_pgsql postgresql-client postgresql-contrib gnu-libiconv wkhtmltopdf
22+
COMPOSER_HOME_CACHE=.cache/composer
2123
MAIN_DOMAIN_NAME=docker.localhost
2224
DB_URL=sqlite:./../.cache/d8.sqlite
2325
# Faster but data will be lost on php container recreation
2426
#DB_URL=sqlite:///dev/shm/d8.sqlite
2527
#DB_URL=mysql://d8:d8@mysql/d8
28+
#DB_URL=pgsql://d9:d9root@postgresql/d9
2629
# Include path to this folder to your .gitignore if you override it
2730
DB_DATA_DIR=../.cache
2831
#DB_DATA_DIR=/dev/shm

Makefile

+18-8
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,13 @@ CGID ?= $(LOCAL_GID)
2424
# Define network name.
2525
COMPOSE_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
3034
endif
3135

3236
# Define current directory only once
@@ -59,17 +63,19 @@ ifeq ($(strip $(COMPOSE_PROJECT_NAME)),projectname)
5963
$(info Please review your project settings and run `make all` again.)
6064
exit 1
6165
endif
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))
6468
endif
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 tzdata $(ADD_PHP_EXT))
7176
# Set up timezone
7277
$(call php-0, cp /usr/share/zoneinfo/Europe/Paris /etc/localtime)
78+
$(call php-0, sh -c '[ ! -z "$$COMPOSER_HOME" -a -d $$COMPOSER_HOME ] && chown -R $(CUID):$(CGID) $$COMPOSER_HOME')
7379
$(call php-0, kill -USR2 1)
7480
$(call php, composer global require -o --update-no-dev --no-suggest "hirak/prestissimo:^0.3")
7581

@@ -148,9 +154,13 @@ clean: info
148154
make -s down
149155
$(eval SCAFFOLD = $(shell docker run --rm -v $(CURDIR):/mnt -w /mnt --user $(CUID):$(CGID) $(IMAGE_PHP) composer run-script list-scaffold-files | grep -P '^(?!>)'))
150156
@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'
151-
ifdef MYSQL_DIR
152-
@echo "Removing mysql data from $(MYSQL_DIR) ..."
153-
docker run --rm --user 0:0 -v $(shell dirname $(MYSQL_DIR)):/mnt $(IMAGE_PHP) sh -c "rm -fr /mnt/`basename $(MYSQL_DIR)`"
157+
ifdef DB_MOUNT_DIR
158+
@echo "Clean-up database data from $(DB_MOUNT_DIR) ..."
159+
docker run --rm --user 0:0 -v $(shell dirname $(DB_MOUNT_DIR)):/mnt $(IMAGE_PHP) sh -c "rm -fr /mnt/`basename $(DB_MOUNT_DIR)`"
160+
endif
161+
ifdef COMPOSER_HOME_CACHE
162+
@echo "Clean-up composer cache from $(COMPOSER_HOME_CACHE) ..."
163+
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)`"
154164
endif
155165
ifeq ($(CLEAR_FRONT_PACKAGES), yes)
156166
make clear-front

docker/docker-compose.override.yml.default

+17
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@ services:
66
php:
77
environment:
88
COMPOSER_MEMORY_LIMIT: "-1"
9+
COMPOSER_HOME: /home/www-data/.composer
910
volumes:
1011
- "./90-mail.ini:/etc/php7/conf.d/90-mail.ini:z"
12+
- "../${COMPOSER_HOME_CACHE}:/home/www-data/.composer:z"
1113
# depends_on:
1214
# - mysql
15+
# - postgresql
1316
# Uncomment next line if you need PHP XDebug.
1417
# command: php-fpm7 -F -d zend_extension=xdebug.so
1518

@@ -35,6 +38,20 @@ services:
3538
# MYSQL_ROOT_PASSWORD: d8root
3639
# restart: always
3740
# networks:
41+
# - front
42+
43+
# postgresql:
44+
# image: postgres:12.2-alpine
45+
# container_name: "${COMPOSE_PROJECT_NAME}_pgsql"
46+
# volumes:
47+
# - ${DB_DATA_DIR}/${COMPOSE_PROJECT_NAME}_pgsql:/var/lib/postgresql/data:Z
48+
# environment:
49+
# POSTGRES_DB: d9
50+
# POSTGRES_USER: d9
51+
# POSTGRES_PASSWORD: d9root
52+
# PGDATA: /var/lib/postgresql/data
53+
# restart: always
54+
# networks:
3855
# - front
3956

4057
mailhog:

0 commit comments

Comments
 (0)