Browse Source

docker ready for api (no app yet)

Bachir Soussi Chiadmi 3 years ago
parent
commit
f697afe63a
14 changed files with 120 additions and 65 deletions
  1. 1 1
      .env
  2. 2 5
      .gitignore
  3. 6 9
      .gitmodules
  4. 0 0
      Docker/app/Dockerfile
  5. 0 0
      Docker/app/bashrc
  6. 26 0
      Docker/app/client-entrypoint.sh
  7. 0 0
      Docker/app/inputrc
  8. 2 2
      Docker/nginx/default.conf
  9. 0 16
      Docker/npm/client-entrypoint.sh
  10. 5 2
      Makefile
  11. 54 5
      README.md
  12. 1 0
      api
  13. 1 0
      app
  14. 22 25
      docker-compose.yml

+ 1 - 1
.env

@@ -1,7 +1,7 @@
 COMPOSE_PROJECT_NAME=enfrancais
 
 API_ROOT=./api
-CLIENT_ROOT=./client
+APP_ROOT=./app
 LOG_ROOT=./log
 
 DB_IMPORTE_FILE=./ressources/enfrancais.sql

+ 2 - 5
.gitignore

@@ -1,7 +1,4 @@
-public_html/*
-public_html_legacy/*
-drupal7/*
+app/*
+api/*
 log/*
 *.sql
-bin/syncfiles.sh
-solr_cores/*

+ 6 - 9
.gitmodules

@@ -1,9 +1,6 @@
-[submodule "public_html_legacy"]
-	path = public_html_legacy
-	url = https://figureslibres.io/gogs/bachir/materio-base-d7.git
-[submodule "public_html"]
-	path = public_html
-	url = https://figureslibres.io/gogs/bachir/materio-d8.git
-[submodule "solr_cores"]
-	path = solr_cores
-	url = https://figureslibres.io/gogs/bachir/solr-materio-d8.git
+[submodule "api"]
+	path = api
+	url = https://figureslibres.io/gogs/bachir/D9-enfrancais.git
+[submodule "app"]
+	path = app
+	url = https://figureslibres.io/gogs/bachir/enfrancais-app.git

+ 0 - 0
Docker/npm/Dockerfile → Docker/app/Dockerfile


+ 0 - 0
Docker/npm/bashrc → Docker/app/bashrc


+ 26 - 0
Docker/app/client-entrypoint.sh

@@ -0,0 +1,26 @@
+#!/bin/sh
+
+cat /etc/passwd|grep 1000
+
+cd /app
+
+echo "Cleaning node_modules"
+rm -rf node_modules
+
+echo "Cleaning npm cache"
+npm cache clean --f
+
+echo "Npm install"
+npm install
+
+# echo "Run npm dev"
+# npm run dev
+echo "APP_ENV $APP_ENV"
+
+if [ "$APP_ENV" = "prod" ]; then
+  echo "Run npm prod"
+  npm run prod
+else
+  echo "Run npm dev"
+  npm run dev
+fi

+ 0 - 0
Docker/npm/inputrc → Docker/app/inputrc


+ 2 - 2
Docker/nginx/default.conf

@@ -1,8 +1,8 @@
 server {
     listen 80 default_server;
-    root /var/www/html/d8.materio.com/public_html/web;
+    root /var/www/html/api/src/web;
     index index.html index.php;
-    server_name *.materio.com;
+    server_name *.enfrancais.fr;
 
     charset utf-8;
 

+ 0 - 16
Docker/npm/client-entrypoint.sh

@@ -1,16 +0,0 @@
-#!/bin/sh
-
-# cat /etc/passwd|grep 1000
-cd /app
-
-echo "Cleaning node_modules"
-rm -rf node_modules
-
-echo "Cleaning npm cache"
-npm cache clean --f
-
-echo "Npm install"
-npm install
-
-echo "Run npm dev"
-npm run dev

+ 5 - 2
Makefile

@@ -12,6 +12,9 @@ export USER_UNAME
 export USER_GID
 export USER_GNAME
 
+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)
 
@@ -36,8 +39,8 @@ down:
 exec_php:
 		docker exec -it enfrancais_php_1 bash
 
-exec_npm:
-		docker exec -it enfrancais_npm_1 sh
+exec_app:
+		docker exec -it enfrancais_app_1 sh
 
 exec_mysql:
 		docker exec -it enfrancais_mysql_1 bash

+ 54 - 5
README.md

@@ -33,12 +33,13 @@ 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
+configure your vhosts to add a reverse proxy that will redirect the dev.enfrancais.fr to our container
+Apache
 ```
 <Virtualhost *:80>
   ServerName dev.enfrancais.fr
-  ProxyPass / http://127.0.0.1:8880/
-  ProxyPassReverse / http://127.0.0.1:8880/
+  ProxyPass / http://127.0.0.1:8990/
+  ProxyPassReverse / http://127.0.0.1:8990/
   ProxyRequests Off
   ProxyPreserveHost On
   proxy_buffer_size          128k;
@@ -49,8 +50,8 @@ configure your apache vhosts to add a reverse proxy that will redirect the dev.e
 ```
 <Virtualhost *:80>
    ServerName dev.phpmyadmin.enfrancais.fr
-   ProxyPass / http://127.0.0.1:8881/
-   ProxyPassReverse / http://127.0.0.1:8881/
+   ProxyPass / http://127.0.0.1:8991/
+   ProxyPassReverse / http://127.0.0.1:8991/
    ProxyRequests Off
    ProxyPreserveHost On
    proxy_buffer_size          128k;
@@ -58,8 +59,53 @@ configure your apache vhosts to add a reverse proxy that will redirect the dev.e
    proxy_busy_buffers_size    256k;
 </Virtualhost>
 ```
+nginx
+```
+server {
+     listen 80;
+     server_name dev.enfrancais.fr;
+ 
+     access_log off;
+     error_log  /var/log/nginx/enfrancais/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.enfrancais.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)
 ```
@@ -107,6 +153,9 @@ do not use directly docker or docker-compose to run this instance
 use make instead like ```make up```
 
 ```makefile
+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)
 

+ 1 - 0
api

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

+ 1 - 0
app

@@ -0,0 +1 @@
+Subproject commit 6636ca21c2236415a24b62f8ef54083bc7cca86d

+ 22 - 25
docker-compose.yml

@@ -1,4 +1,4 @@
-version: "3.5"
+version: "3.8"
 
 services:
   mysql:
@@ -7,7 +7,7 @@ services:
       - db-data:/var/lib/mysql
       - ./Docker/mysql/mysql.cnf:/etc/mysql/conf.d/custom.cnf:ro
       - ./Docker/mysql/bashrc:/root/.bashrc:ro
-      - "${DB_IMPORTE_FILE_D8}:/docker-entrypoint-initdb.d/enfrancais.sql"
+      - "${DB_IMPORTE_FILE}:/docker-entrypoint-initdb.d/enfrancais.sql"
     networks:
       - database
     hostname: mysql
@@ -34,63 +34,60 @@ services:
     user: ${USER_UID}:${USER_GID}
     volumes:
       - php-user-data:/home/${USER_UNAME}
-      - "${PROJECT_ROOT}:/var/www/html/d8.materio.com/public_html"
-      - "${LEGACY_ROOT}:/var/www/html/d7.materio.com/public_html"
+      - "${API_ROOT}:/var/www/html/api"
       - "${LOG_ROOT}/php:/var/log:rw"
-    working_dir: "/var/www/html/d8.materio.com/public_html"
+    working_dir: "/var/www/html/api"
     networks:
       - database
       - redis
       - server
-      - solr
     depends_on:
       - mysql
-      - mysql-legacy
       - redis
-      - solr-new
 
   phpmyadmin:
     image: phpmyadmin/phpmyadmin
     ports:
-      - 8891:80
+      - 8991:80
     networks:
       - database
     depends_on:
       - mysql
-      - mysql-legacy
     environment:
       PMA_HOSTS: mysql,mysql-legacy
 
   nginx:
     build: ./Docker/nginx/
     ports:
-      - 8890:80
+      - 8990:80
     volumes:
-      - "${PROJECT_ROOT}:/var/www/html/d8.materio.com/public_html"
-      - "${LEGACY_ROOT}:/var/www/html/d7.materio.com/public_html"
+      - "${API_ROOT}:/var/www/html/api"
+      - "${APP_ROOT}:/var/www/html/app"
       - "${LOG_ROOT}:/var/log:rw"
-    working_dir: "/var/www/html/d8.materio.com/public_html"
+    working_dir: "/var/www/html/api/"
     networks:
       - server
-      - solr
     depends_on:
       - php
 
-  npm:
-    build: ./Docker/npm
-    user: ${USER_UID}:${USER_GID}
-    volumes:
-      - "${PROJECT_ROOT}:/app"
-      - npm-user-data:/home/${USER_UNAME}
-    ports:
-      - 8788:8788
-    working_dir: "/app"
+  # app:
+  #   build: ./Docker/app
+  #   user: ${USER_UID}:${USER_GID}
+  #   volumes:
+  #     - "${APP_ROOT}:/app"
+  #     - npm-user-data:/home/${USER_UNAME}
+  #   ports:
+  #     - 8988:8988
+  #   working_dir: "/app"
+  #   environment:
+  #     - APP_ENV=dev
+
 
 volumes:
     php-user-data:
     db-data:
     redis-data:
-    npm-user-data:
+    # npm-user-data:
 
 networks:
     database: