Improve configuration with Makefile
- Add Makefile - Add environment configuration file - Use env with docker-compose and Makefile"
This commit is contained in:
10
.env
Normal file
10
.env
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# See https://docs.docker.com/compose/environment-variables/#the-env-file
|
||||||
|
|
||||||
|
MYSQL_DUMPS_DIR=data/db/dumps
|
||||||
|
MYSQL_DATABASE=test
|
||||||
|
MYSQL_ROOT_USER=root
|
||||||
|
MYSQL_ROOT_PASSWORD=root
|
||||||
|
MYSQL_USER=dev
|
||||||
|
MYSQL_PASSWORD=dev
|
||||||
67
Makefile
Normal file
67
Makefile
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
# Makefile for Docker Nginx PHP Composer MySQL
|
||||||
|
|
||||||
|
# config environment
|
||||||
|
include .env
|
||||||
|
|
||||||
|
help:
|
||||||
|
@echo ""
|
||||||
|
@echo "usage: make COMMAND"
|
||||||
|
@echo ""
|
||||||
|
@echo "Commands:"
|
||||||
|
@echo " apidoc Generate documentation of API"
|
||||||
|
@echo " clean Clean directories for reset"
|
||||||
|
@echo " composer-up Update php composer"
|
||||||
|
@echo " docker-start Create and start containers"
|
||||||
|
@echo " docker-stop Stop all services"
|
||||||
|
@echo " docker-sweep Sweep old containers and volumes"
|
||||||
|
@echo " gencerts Generate SSL certificates"
|
||||||
|
@echo " mysql-dump Create backup of whole database"
|
||||||
|
@echo " mysql-restore Restore backup from whole database"
|
||||||
|
@echo " test Test application"
|
||||||
|
|
||||||
|
init:
|
||||||
|
@cp $(PWD)/web/app/composer.json.dist $(PWD)/web/app/composer.json
|
||||||
|
|
||||||
|
apidoc:
|
||||||
|
@docker exec -i $(shell docker-compose ps -q php) php ./app/vendor/apigen/apigen/bin/apigen generate -s app/src -d app/doc
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@rm -Rf data/db/mysql/*
|
||||||
|
@rm -Rf data/db/dumps/*
|
||||||
|
@rm -Rf web/app/vendor
|
||||||
|
@rm -Rf web/app/composer.lock
|
||||||
|
@rm -Rf web/app/doc
|
||||||
|
@rm -Rf web/app/report
|
||||||
|
@rm -Rf etc/ssl/*
|
||||||
|
|
||||||
|
composer-up:
|
||||||
|
@docker run --rm -v $(PWD)/web/app:/app composer/composer update
|
||||||
|
|
||||||
|
docker-start: init
|
||||||
|
@echo "Docker is running..."
|
||||||
|
docker-compose up -d;
|
||||||
|
|
||||||
|
docker-stop:
|
||||||
|
docker-compose stop
|
||||||
|
docker-compose kill
|
||||||
|
docker-compose rm -f
|
||||||
|
@make clean
|
||||||
|
|
||||||
|
docker-sweep:
|
||||||
|
@docker ps -aq | xargs docker rm
|
||||||
|
@docker volume ls -qf dangling=true | xargs docker volume rm
|
||||||
|
|
||||||
|
gen-certs:
|
||||||
|
@docker run --rm -v $(PWD)/etc/ssl:/certificates -e "SERVER=localhost" jacoelho/generate-certificate
|
||||||
|
|
||||||
|
mysql-dump:
|
||||||
|
@mkdir -p $(MYSQL_DUMPS_DIR)
|
||||||
|
@docker exec -i $(shell docker-compose ps -q mysqldb) mysqldump --all-databases -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" > $(MYSQL_DUMPS_DIR)/db.sql
|
||||||
|
|
||||||
|
mysql-restore:
|
||||||
|
@docker exec -i mysql mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < $(MYSQL_DUMPS_DIR)/db.sql
|
||||||
|
|
||||||
|
test:
|
||||||
|
@docker exec -i $(shell docker-compose ps -q php) app/vendor/bin/phpunit --colors=always --configuration app/
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
@@ -1,28 +1,28 @@
|
|||||||
version: '2'
|
version: '3'
|
||||||
services:
|
services:
|
||||||
web:
|
web:
|
||||||
image: nginx:latest
|
image: nginx:latest
|
||||||
ports:
|
ports:
|
||||||
- "8000:80"
|
- "8000:80"
|
||||||
- "3000:443"
|
- "3000:443"
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- "./etc/nginx/default.conf:/etc/nginx/conf.d/default.conf"
|
- "./etc/nginx/default.conf:/etc/nginx/conf.d/default.conf"
|
||||||
- "./etc/ssl:/etc/ssl"
|
- "./etc/ssl:/etc/ssl"
|
||||||
- "./web:/web"
|
- "./web:/web"
|
||||||
depends_on:
|
depends_on:
|
||||||
- "php"
|
- php
|
||||||
- "mysqldb"
|
- mysqldb
|
||||||
php:
|
php:
|
||||||
image: nanoninja/php-fpm
|
image: nanoninja/php-fpm
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- "./etc/php/php.ini:/usr/local/etc/php/conf.d/php.ini"
|
- "./etc/php/php.ini:/usr/local/etc/php/conf.d/php.ini"
|
||||||
- ./web:/web
|
- "./web:/var/www/html"
|
||||||
composer:
|
composer:
|
||||||
image: composer/composer
|
image: composer/composer
|
||||||
volumes:
|
volumes:
|
||||||
- ./web/app:/app
|
- "./web/app:/app"
|
||||||
command: install
|
command: install
|
||||||
myadmin:
|
myadmin:
|
||||||
image: phpmyadmin/phpmyadmin
|
image: phpmyadmin/phpmyadmin
|
||||||
@@ -34,17 +34,19 @@ services:
|
|||||||
- PMA_HOST=mysql
|
- PMA_HOST=mysql
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- "mysqldb"
|
- mysqldb
|
||||||
mysqldb:
|
mysqldb:
|
||||||
image: mysql
|
image: mysql
|
||||||
container_name: mysql
|
container_name: mysql
|
||||||
restart: always
|
restart: always
|
||||||
|
env_file:
|
||||||
|
- ".env"
|
||||||
environment:
|
environment:
|
||||||
- MYSQL_DATABASE=test
|
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||||
- MYSQL_ROOT_PASSWORD=root
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||||
- MYSQL_USER=dev
|
- MYSQL_USER=${MYSQL_USER}
|
||||||
- MYSQL_PASSWORD=dev
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||||
ports:
|
ports:
|
||||||
- 3306:3306
|
- "3306:3306"
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/db/mysql:/var/lib/mysql
|
- "./data/db/mysql:/var/lib/mysql"
|
||||||
|
|||||||
Reference in New Issue
Block a user