cerebrate/docker
Andras Iklody 63af5d080f
Merge pull request #79 from righel/add-wait-for-it-script-docker
chg: wait for db before running migrations
2021-12-23 12:07:57 +01:00
..
etc dockerfile and configuration 2021-10-25 15:46:47 +02:00
Dockerfile Don't ignore platform reqs in dockerfile 2021-12-17 10:56:21 +01:00
README.md dockerfile and configuration 2021-10-25 15:46:47 +02:00
docker-compose.yml chg: wait for db before running migrations 2021-12-17 12:39:18 +01:00
entrypoint.sh fix: typo 2021-12-17 14:07:07 +01:00
wait-for-it.sh fix: add missing copyright notice 2021-12-17 17:14:40 +01:00

README.md

Database init

For the docker-compose setup to work you must initialize database with what is in ../INSTALL/mysql.sql

mkdir -p run/dbinit/
cp ../INSTALL/mysql.sql run/dbinit/

The MariaDB container has a volume mounted as follow - ./run/dbinit:/docker-entrypoint-initdb.d/:ro

So that on startup the container will source files in this directory to seed the database. Once it's done the container will run normally and Cerebrate will be able to roll its database migration scripts

Actual data and volumes

The actual database will be located in ./run/database exposed with the following volume - ./run/database:/var/lib/mysql

Application logs (CakePHP / Cerebrate) will be stored in ./run/logs, volume - ./run/logs:/var/www/html/logs

You're free to change those parameters if you're using Swarm, Kubernetes or your favorite config management tool to deploy this stack

Building yourself

You can create the following Makefile in basedir of this repository and issue make image

COMPOSER_VERSION?=2.1.5
PHP_VERSION?=7.4
DEBIAN_RELEASE?=buster
IMAGE_NAME?=cerebrate:latest

image:
	docker build -t $(IMAGE_NAME) \
		-f docker/Dockerfile \
		--build-arg COMPOSER_VERSION=$(COMPOSER_VERSION) \
		--build-arg PHP_VERSION=$(PHP_VERSION) \
		--build-arg DEBIAN_RELEASE=$(DEBIAN_RELEASE) \
		.