Skip to content

Add postgresql support #275

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 9, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .env.default
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,13 @@ IMAGE_REDIS=redis:5-alpine
IMAGE_DRIVER=zenika/alpine-chrome
CLEAR_FRONT_PACKAGES=no
ADD_PHP_EXT=
#ADD_PHP_EXT=php7-pdo_pgsql postgresql-client postgresql-contrib gnu-libiconv wkhtmltopdf
MAIN_DOMAIN_NAME=docker.localhost
DB_URL=sqlite:./../.cache/d8.sqlite
# Faster but data will be lost on php container recreation
#DB_URL=sqlite:///dev/shm/d8.sqlite
#DB_URL=mysql://d8:d8@mysql/d8
#DB_URL=pgsql://d9:d9root@postgresql/d9
# Include path to this folder to your .gitignore if you override it
DB_DATA_DIR=../.cache
#DB_DATA_DIR=/dev/shm
Expand Down
20 changes: 12 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,13 @@ CGID ?= $(LOCAL_GID)
# Define network name.
COMPOSE_NET_NAME := $(COMPOSE_PROJECT_NAME)_front

# Determine mysql data directory if defined
ifeq ($(shell docker-compose config --services | grep mysql),mysql)
MYSQL_DIR=$(shell cd docker && realpath $(DB_DATA_DIR))/$(COMPOSE_PROJECT_NAME)_mysql
SDC_SERVICES=$(shell docker-compose config --services)
# Determine database data directory if defined
ifeq ($(findstring mysql,$(SDC_SERVICES)),mysql)
DB_MOUNT_DIR=$(shell cd docker && realpath $(DB_DATA_DIR))/$(COMPOSE_PROJECT_NAME)_mysql
endif
ifeq ($(findstring postgresql,$(SDC_SERVICES)),postgresql)
DB_MOUNT_DIR=$(shell cd docker && realpath $(DB_DATA_DIR))/$(COMPOSE_PROJECT_NAME)_pgsql
endif

# Define current directory only once
Expand Down Expand Up @@ -59,8 +63,8 @@ ifeq ($(strip $(COMPOSE_PROJECT_NAME)),projectname)
$(info Please review your project settings and run `make all` again.)
exit 1
endif
ifdef MYSQL_DIR
mkdir -p $(MYSQL_DIR) && chmod 777 $(MYSQL_DIR)
ifdef DB_MOUNT_DIR
$(shell [ ! -d $(DB_MOUNT_DIR) ] && mkdir -p $(DB_MOUNT_DIR) && chmod 777 $(DB_MOUNT_DIR))
endif
make -s down
@echo "Updating containers..."
Expand Down Expand Up @@ -148,9 +152,9 @@ clean: info
make -s down
$(eval SCAFFOLD = $(shell docker run --rm -v $(CURDIR):/mnt -w /mnt --user $(CUID):$(CGID) $(IMAGE_PHP) composer run-script list-scaffold-files | grep -P '^(?!>)'))
@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'
ifdef MYSQL_DIR
@echo "Removing mysql data from $(MYSQL_DIR) ..."
docker run --rm --user 0:0 -v $(shell dirname $(MYSQL_DIR)):/mnt $(IMAGE_PHP) sh -c "rm -fr /mnt/`basename $(MYSQL_DIR)`"
ifdef DB_MOUNT_DIR
@echo "Clean-up database data from $(DB_MOUNT_DIR) ..."
docker run --rm --user 0:0 -v $(shell dirname $(DB_MOUNT_DIR)):/mnt $(IMAGE_PHP) sh -c "rm -fr /mnt/`basename $(DB_MOUNT_DIR)`"
endif
ifeq ($(CLEAR_FRONT_PACKAGES), yes)
make clear-front
Expand Down
15 changes: 15 additions & 0 deletions docker/docker-compose.override.yml.default
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ services:
- "./90-mail.ini:/etc/php7/conf.d/90-mail.ini:z"
# depends_on:
# - mysql
# - postgresql
# Uncomment next line if you need PHP XDebug.
# command: php-fpm7 -F -d zend_extension=xdebug.so

Expand All @@ -35,6 +36,20 @@ services:
# MYSQL_ROOT_PASSWORD: d8root
# restart: always
# networks:
# - front

# postgresql:
# image: postgres:12.2-alpine
# container_name: "${COMPOSE_PROJECT_NAME}_pgsql"
# volumes:
# - ${DB_DATA_DIR}/${COMPOSE_PROJECT_NAME}_pgsql:/var/lib/postgresql/data:Z
# environment:
# POSTGRES_DB: d9
# POSTGRES_USER: d9
# POSTGRES_PASSWORD: d9root
# PGDATA: /var/lib/postgresql/data
# restart: always
# networks:
# - front

mailhog:
Expand Down