No Description

bach 61ca5d811c updated php-fpm from 7.4 to 8.1 8 months ago
Docker 61ca5d811c updated php-fpm from 7.4 to 8.1 8 months ago
api @ d7b9f4d209 61ca5d811c updated php-fpm from 7.4 to 8.1 8 months ago
app @ e080c4ac5e 61ca5d811c updated php-fpm from 7.4 to 8.1 8 months ago
bin 1874f2b2a2 first commit 1 year ago
ressources 1874f2b2a2 first commit 1 year ago
.env 1874f2b2a2 first commit 1 year ago
.gitignore 1874f2b2a2 first commit 1 year ago
.gitmodules a1e9df6b4f fixed git submodules 1 year ago
LICENSE.txt 1874f2b2a2 first commit 1 year ago
Makefile 42b43be7ec disabled nginx proxying cache 10 months ago
README.md 1874f2b2a2 first commit 1 year ago
docker-compose.yml 61ca5d811c updated php-fpm from 7.4 to 8.1 8 months ago

README.md

Où Atterrir ? Docker Environement (drupal api + vuejs client)

Où Atterrir powered by druapl 9 for the api and vuejs for the app (client) in docker environement (nginx, php:7-fpm+drush, mysql, phpmyadmin, redis, npm)

Install docker

sudo pacman -S docker docker-compose docker-machine

start the docker service

sudo systemctl start docker

For all the following, DO NOT run docker or make commande as root or with sudo, use this setup: add your user to the docker user group, re-login, and restart docker.service.

https://wiki.archlinux.org/index.php/Docker#Installation

Clone this repos

this will clone this repos (main docker environement), the drupal 9 based api source code (without sites/default folder nor mysq ddb) and the vuejs app source code.

git clone --recursive -o figli https://figureslibres.io/gogs/bachir/docker-ouatterrir.git

submodules :

setup /sites/default/settings.php


### get the sites/default/files folder
rsync the files from you know where (if you don't, you don't) to api/src/web/sites/default/files/

## Mysql
Copy your-sql-dump.sql into ./ressources/ouatterrir.sql
It will be automaticly imported into the mysql container db (only) on the first ```make up```

## Hosts and reverse proxy

add to your /etc/hosts :

127.0.0.1 dev.ouatterrir.fr 127.0.0.1 dev.phpmyadmin.ouatterrir.fr

configure your vhosts to add a reverse proxy that will redirect the dev.ouatterrir.fr to our container
Apache

ServerName dev.ouatterrir.fr ProxyPass / http://127.0.0.1:8990/ ProxyPassReverse / http://127.0.0.1:8990/ ProxyRequests Off ProxyPreserveHost On proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k;

ServerName dev.phpmyadmin.ouatterrir.fr ProxyPass / http://127.0.0.1:8991/ ProxyPassReverse / http://127.0.0.1:8991/ ProxyRequests Off ProxyPreserveHost On proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k;

nginx

server {

 listen 80;
 server_name dev.ouatterrir.fr;

 access_log off;
 error_log  /var/log/nginx/ouatterrir/error.log error;

 client_max_body_size 100m;

 location / {
     proxy_pass http://127.0.0.1:8990;
     proxy_set_header Host $host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Forwarded-Proto $scheme;
     proxy_buffer_size          128k;
     proxy_buffers              4 256k;
     proxy_busy_buffers_size    256k;
 }

} server {

 listen 80;
 server_name dev.phpmyadmin.ouatterrir.com;

 location / {
     proxy_pass http://127.0.0.1:8991;
     proxy_set_header Host $host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Forwarded-Proto $scheme;
     proxy_buffer_size          128k;
     proxy_buffers              4 256k;
     proxy_busy_buffers_size    256k;
 }

}


## Docker

### docker-compose pull
pull the latest image of services

make pull


### build
only before the first run (may take some time)

make build

/!\ DO NOT use ```docker-compose build```, it will faile

### 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.

## Drupal Composer install
Only at first up, finish to install drupal composer dependencies
but first we need to downgrade composer to version 1

docker exec -u 0 -it ouatterrir_api_1 /bin/bash composer selfupdate --1

ctrl+d

make exec_api composer install


## Visualize
You can now visit :
the app http://dev.ouatterrir.fr
or the api http://dev.ouatterrir.fr/api
on your browser

## Coding
### drush
you can access to drush by loging into the php container

make exec_api

once inside the php container in /var/www/html you can use drush as usual


## Updating code

git pull figli master

then update all submodules

git submodule update --recursive --checkout

or only one

git submodule update --checkout app/

or

git submodule update --checkout api/ make api_maj_config


## Updating manualy mysql db
copy your db backup into the mysql container
```sh
sudo docker cp your-db-file.sql ouatterrir_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

mysql -uroot -pouatterrir
> drop database ouatterrir;
> create database ouatterrir;
> exit;
mysql -uroot -pouatterrir ouatterrir < your-db-file.sql

Makefile

DO NOT use directly docker or docker-compose to run this instance use make instead like make up

pull:
		docker-compose pull

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)

downbuildup: down build up

up:
		docker-compose up -d

ps:
		docker-compose ps

logs:
		docker-compose logs -f

api_maj_config: api_crd api_composer_install api_updb api_cim api_cr

api_crd:
		docker exec ouatterrir_api_1 /bin/bash -c "drush cache-clear drush"

api_cr:
		docker exec ouatterrir_api_1 /bin/bash -c "drush cr"

api_updb:
		docker exec ouatterrir_api_1 /bin/bash -c "drush updb -y"

api_cim:
		docker exec ouatterrir_api_1 /bin/bash -c "drush config-import -y"

api_composer_install:
		docker exec ouatterrir_api_1 /bin/bash -c "composer install --no-dev"

down:
		docker-compose down

exec_api:
		docker exec -it ouatterrir_api_1 bash

exec_app:
		docker exec -it ouatterrir_app_1 sh

restart_app:
  docker-compose restart app

exec_mysql:
		docker exec -it ouatterrir_mysql_1 bash