ouidade 2 years ago
parent
commit
65bcc917ae
10 changed files with 123 additions and 27 deletions
  1. 4 2
      .env
  2. 1 1
      .gitignore
  3. 3 0
      .gitmodules
  4. 14 10
      Docker/php/Dockerfile
  5. 4 0
      Docker/php/bashrc
  6. 2 0
      Docker/php/inputrc
  7. 74 13
      README.md
  8. 2 1
      docker-compose.yml
  9. 1 0
      public_html
  10. 18 0
      ressources/xdebug.ini

+ 4 - 2
.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

+ 1 - 1
.gitignore

@@ -1,4 +1,4 @@
-src/*
+public_html/*
 log/*
 *.sql
 .DS_Store

+ 3 - 0
.gitmodules

@@ -0,0 +1,3 @@
+[submodule "public_html"]
+	path = public_html
+	url = https://figureslibres.io/gogs/ouidade/dev-epau.archi.fr.git

+ 14 - 10
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

+ 4 - 0
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'

+ 2 - 0
Docker/php/inputrc

@@ -0,0 +1,2 @@
+set show-all-if-ambiguous on
+set completion-ignore-case on

+ 74 - 13
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
 <Virtualhost *:80>
-   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
 </Virtualhost>
 ```
@@ -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-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
+
 ```
-sudo docker exec -it docker-grav_php_1 bash
+
+### 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
+```

+ 2 - 1
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"

+ 1 - 0
public_html

@@ -0,0 +1 @@
+Subproject commit d608458880be43726d8356abc816cfc447cdecd3

+ 18 - 0
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