diff --git a/.env b/.env index a77a05f..bceb440 100644 --- a/.env +++ b/.env @@ -1,4 +1,6 @@ -COMPOSE_PROJECT_NAME=kevintessier_grav +COMPOSE_PROJECT_NAME=epau.archi.fr -PROJECT_ROOT=./src +PROJECT_ROOT=./public_html LOG_ROOT=./log + +XDEBUG_INI=./ressources/xdebug.ini diff --git a/.gitignore b/.gitignore index f7b8cc8..657b8ef 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -src/* +public_html/* log/* *.sql .DS_Store diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..da4f831 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "public_html"] + path = public_html + url = https://figureslibres.io/gogs/ouidade/dev-epau.archi.fr.git diff --git a/Docker/php/Dockerfile b/Docker/php/Dockerfile index 50b72f5..818d785 100644 --- a/Docker/php/Dockerfile +++ b/Docker/php/Dockerfile @@ -1,28 +1,32 @@ -FROM php:7.3-fpm +FROM php:7.4-fpm RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng-dev \ - mysql-client \ zip \ - libzip-dev && \ - # docker-php-ext-install -j$(nproc) iconv && \ - docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + libzip-dev + +RUN docker-php-ext-configure gd && \ apt-get install -y imagemagick libmagickwand-dev && \ pecl install imagick && docker-php-ext-enable imagick && \ docker-php-ext-install -j$(nproc) gd && \ - docker-php-ext-install pdo_mysql zip && \ + docker-php-ext-install zip && \ docker-php-ext-install opcache && \ docker-php-ext-install bcmath && \ - apt-get install -y git vim && \ - pecl install redis-4.3.0 && \ - pecl install xdebug-2.7.0 && \ - docker-php-ext-enable redis xdebug + apt-get install -y git vim + +RUN pecl install redis-5.3.4 && docker-php-ext-enable redis + +RUN pecl install xdebug-3.0.4 && \ + docker-php-ext-enable xdebug RUN export COMPOSER_HOME=/usr/local/composer && \ curl -sS https://getcomposer.org/installer \ | php -- --install-dir=/usr/local/bin --filename=composer COPY ./php-custom.ini /usr/local/etc/php/conf.d/php-custom.ini + +COPY ./bashrc /root/.bashrc +COPY ./inputrc /root/.inputrc diff --git a/Docker/php/bashrc b/Docker/php/bashrc new file mode 100644 index 0000000..e82cf1b --- /dev/null +++ b/Docker/php/bashrc @@ -0,0 +1,4 @@ + +PS1='\e[36m\e[1mPHP-7.4\e[0m:\e[90m\w\e[0m\n$ ' +bind '"\e[A": history-search-backward' +bind '"\e[B": history-search-forward' diff --git a/Docker/php/inputrc b/Docker/php/inputrc new file mode 100644 index 0000000..db8d91d --- /dev/null +++ b/Docker/php/inputrc @@ -0,0 +1,2 @@ +set show-all-if-ambiguous on +set completion-ignore-case on diff --git a/README.md b/README.md index a2d9e3d..cc446fe 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# docker +# epau.archi.fr -Docker php 7.3fpm nginx +epau.archi.fr powered by grav in docker environement (nginx, php:7.0-fpm) ## Install docker ``` @@ -12,21 +12,47 @@ sudo pacman -S docker docker-compose docker-machine this will clone this repos (main docker environement) and the grav source code ``` -git clone --recursive -o figli https://figureslibres.io/gogs/kevin/docker-grav.git +git clone --recursive -o figli https://figureslibres.io/gogs/ouidade/docker-epau.archi.fr-grav.git ``` ## Hosts and reverse proxy add to your /etc/hosts : ``` -127.0.0.1 dev.docker-grav.net +127.0.0.1 dev.epau.archi.fr ``` -configure your apache vhosts to add a reverse proxy that will redirect the dev.materio.com to our container +configure your vhosts to add a reverse proxy that will redirect the domain dev.figureslibres.com to our container + +### nginx +edit ```/etc/nginx/sites-available/dev.epau.archi.fr.conf``` with : +```nginx +server { + listen 80; + server_name dev.epau.archi.fr; + location / { + proxy_pass http://127.0.0.1:8882; + 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; + } +} ``` +then activate the vhost +```sh +sudo ln -s /etc/nginx/sites-available/dev.epau.archi.fr.conf /etc/nginx/sites-enabled/ +sudo systemctl restart nginx +``` + +### Apache +```apache - ServerName dev.docker-grav.net - ProxyPass / http://127.0.0.1:8880/ - ProxyPassReverse / http://127.0.0.1:8880/ + ServerName dev.epau.archi.fr + ProxyPass / http://127.0.0.1:8882/ + ProxyPassReverse / http://127.0.0.1:8882/ ProxyRequests Off ``` @@ -41,18 +67,53 @@ sudo systemctl start docker ### build only before the first run (may take some time) ``` -sudo docker-compose build +sudo docker-compose build --no-cache ``` ### run then each time you want to launch the app ``` sudo docker-compose up -d ``` -### loging in + +### check if containers are running ``` -sudo docker exec -it docker-grav_php_1 bash +sudo docker-compose ps ``` +### check the logs +``` +sudo docker-compose logs -f +``` + +### install grav +``` +# log into the php container +sudo docker exec -it epauarchifr_php_1 bash +# install grav using cli +bin/grav install + +``` + +### fixing permissions + +``` +# log into the php container +sudo docker exec -it epauarchifr_php_1 bash +# run the script +./fixperms.sh +``` + +### Pages +fill the /user/pages with your contents or you'll get a 404 error + ## Visualize -You can now visit http://dev.docker-grav.fr or simply http://localhost:8880 on your browser -After the first run +You can now visit http://dev.epau.archi.fr or simply http://localhost:8882 on your browser + + +## Updating code + +``` +git pull figli master +# then update all submodules +git submodule update --recursive --checkout +``` diff --git a/docker-compose.yml b/docker-compose.yml index bd250cc..f58a09f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,13 +8,14 @@ services: volumes: - php-root-data:/root - "${PROJECT_ROOT}:/var/www/html" + - "${XDEBUG_INI}:/usr/local/etc/php/conf.d/xdebug.ini" networks: - server nginx: build: ./Docker/nginx/ ports: - - 8880:80 + - 8882:80 volumes: - "${PROJECT_ROOT}:/var/www/html" - "${LOG_ROOT}:/var/log:rw" diff --git a/public_html b/public_html new file mode 160000 index 0000000..d608458 --- /dev/null +++ b/public_html @@ -0,0 +1 @@ +Subproject commit d608458880be43726d8356abc816cfc447cdecd3 diff --git a/ressources/xdebug.ini b/ressources/xdebug.ini new file mode 100644 index 0000000..cacbdbe --- /dev/null +++ b/ressources/xdebug.ini @@ -0,0 +1,18 @@ +[xdebug] +xdebug.remote_enable=1 +;Should use host.docker.internal but not working on linux +xdebug.remote_host=172.20.0.1 +;Not working on docker context +xdebug.remote_connect_back=0 +;9000 is already bound by php-fpm +xdebug.remote_port=9001 +xdebug.remote_handler=dbgp +xdebug.remote_mode=req +xdebug.remote_autostart=true +; ?=XDEBUG_SESSION_START=1 +;Log file is mounted on volume so you can follow it +xdebug.remote_log=/var/log/xdebug-error.log +xdebug.profiler_enable_trigger=1 +xdebug.profiler_enable=0 +xdebug.profiler_output_dir=/var/log/ +; Example: http://localhost:8080/test?XDEBUG_PROFILE=1