# En françaiS Docker Environement (drupal api + vuejs client)
En FrançaiS powered by druapl 8 for the api and vuejs for the client in docker environement (nginx, php:7-fpm+drush, phpmyadmin, redis, npm)
## Install docker
```
sudo pacman -S docker docker-compose docker-machine
```
## Clone this repos
this will clone this repos (main docker environement) and the edlp drupal 8 source code (without sites/default folder)
```
git clone --recursive -o figli https://figureslibres.io/gogs/bachir/docker-materio-d8.git
```
### setup /sites/default/settings.php
```cp -r ressources/default api/web/sites/```
### get the sites/default/files folder
get the files from where you have it and rsync it to api/web/sites/default/files/
## Mysql
Copy your-sql-dump.sql into ./ressources/enfrancais.sql
It will be automaticly imported into the mysql container db (only) on the first docker-compose up
## Hosts and reverse proxy
add to your /etc/hosts :
```
127.0.0.1 dev.enfrancais.fr
127.0.0.1 dev.phpmyadmin.enfrancais.fr
```
configure your apache vhosts to add a reverse proxy that will redirect the dev.enfrancais.fr to our container
```
ServerName dev.enfrancais.fr
ProxyPass / http://127.0.0.1:8880/
ProxyPassReverse / http://127.0.0.1:8880/
ProxyRequests Off
ProxyPreserveHost On
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
```
```
ServerName dev.phpmyadmin.enfrancais.fr
ProxyPass / http://127.0.0.1:8881/
ProxyPassReverse / http://127.0.0.1:8881/
ProxyRequests Off
ProxyPreserveHost On
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
```
## Docker
### build
only before the first run (may take some time)
```
make build
```
### run
then each time you want to launch the app
```
make up
```
Be aware that a first up, since the db is empty, it will be populated with your file db.sql. It may take some time depending of your db size.
## Druapal Composer install
Only at first up, finish to install drupal composer dependencies
```
make exec_php
composer install
```
## Visualize
You can now visit http://dev.enfrancais.fr on your browser
## Coding
### drush
you can access to drush by loging into the php container
```
make exec_php
```
once inside the php container in /var/www/html you can use drush as usual
## updateding manualy mysql db
copy your db backup into the mysql container
```
sudo docker cp your-db-file.sql enfrancais_mysql_1:/root/
```
log into mysql container
```
make exec_mysql
```
once inside the mysql container you can use mysql command to drop then create and load the db with your file
## Makefile
do not use directly docker or docker-compose to run this instance
use make instead like ```make up```
```makefile
build:
docker-compose build --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME)
buildnc:
docker-compose build --no-cache --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME)
up:
docker-compose up -d
upbuild:
docker-compose up -d --build
ps:
docker-compose ps
logs:
docker-compose logs -f
down:
docker-compose down
exec_php:
docker exec -it materiod8_php_1 bash
exec_npm:
docker exec -it materiod8_npm_1 sh
exec_mysql:
docker exec -it materiod8_mysql_1 bash
```