Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
equipes:devteam:petale_docker_deployment [2020/06/26 15:04]
garciaflores
equipes:devteam:petale_docker_deployment [2020/12/03 16:01] (Version actuelle)
garciaflores ↷ Page déplacée de systeme:petale_docker_deployment à equipes:devteam:petale_docker_deployment
Ligne 2: Ligne 2:
  
 DOCUMENTATION DE L'INSTALL DES MODULES D'AUTHENTIFICATION, PUBLICATIONS ET SALLES DE RÉUNION SUR LIPN-INTRANET-DEV DOCUMENTATION DE L'INSTALL DES MODULES D'AUTHENTIFICATION, PUBLICATIONS ET SALLES DE RÉUNION SUR LIPN-INTRANET-DEV
-participants: Omar, Jaime, Jorge+ 
 +participants: Omar, Jaime, Jorge\\
 date: 5-8 juin 2020 date: 5-8 juin 2020
-I. INSTALLATION DU MODULE D'AUTHENTIFICATION D'UTILISATEURS SUR INTRANET-DEV + 
-1. Création d'une image docker pour le module d'AUTHENTIFICATION +===I. INSTALLATION DU MODULE D'AUTHENTIFICATION D'UTILISATEURS SUR INTRANET-DEV=== 
-1.1.1 Création du fichier dockerfile Dockerfile /server/Dockerfile +1. Création d'une image docker pour le module d'AUTHENTIFICATION\\ 
-λ> docker build --pull --rm -f "server/Dockerfile" -t authentication:latest "server" +1.1.1 Création du fichier dockerfile Dockerfile /server/Dockerfile\\ 
-1.2 lancer l'image docker +  λ> docker build --pull --rm -f "server/Dockerfile" -t authentication:latest "server" 
-λ> docker run --rm -it  -p 3000:3000/tcp authentication:latest+1.2 lancer l'image docker\\ 
 +  λ> docker run --rm -it  -p 3000:3000/tcp authentication:latest 
 2. Le serveur écoute sur localhost 2. Le serveur écoute sur localhost
-3. On va rajouter pm2 pour que le serveur soit persistant + 
-3.1 On édite les fichiers authentification/server package.json et process.json pour rajouter pm2 +3. On va rajouter pm2 pour que le serveur soit persistant\\ 
-3.2 On va récréer et rédemmarer  l'image docker +3.1 On édite les fichiers authentification/server package.json et process.json pour rajouter pm2\\ 
-λ> docker build --pull --rm -f "server/Dockerfile" -t authentication-server:latest "server" +3.2 On va récréer et rédemmarer  l'image docker\\ 
-[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2 +  λ> docker build --pull --rm -f "server/Dockerfile" -t authentication-server:latest "server" 
-[PM2] PM2 Successfully daemonized +     [PM2] Spawning PM2 daemon with pm2_home=/root/.pm2 
-[PM2][WARN] Applications authentication_server not running, starting... +     [PM2] PM2 Successfully daemonized 
-[PM2] App [authentication_server] launched (1 instances) +     [PM2][WARN] Applications authentication_server not running, starting... 
-┌───────────────────────┬────┬─────────┬──────┬─────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐ +     [PM2] App [authentication_server] launched (1 instances) 
-│ App name              │ id │ version │ mode │ pid │ status │ restart │ uptime │ cpu │ mem       │ user │ watching  + 
-├───────────────────────┼────┼─────────┼──────┼─────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤ +App name              id version mode pid status restart uptime cpu mem       user watching ^ 
-│ authentication_server │ 0  │ 0.0.0   │ fork │ 45  │ online │ 0       │ 0s     │ 0%  │ 28.6 MB   │ root │ enabled   +authentication_server 0  0.0.0   fork 45  online 0       0s     0%  28.6 MB   root enabled  | 
-└───────────────────────┴────┴─────────┴──────┴─────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘ + 
- Use `pm2 show <id|name>` to get more details about an app +     Use `pm2 show <id|name>` to get more details about an app 
-Done in 1.28s. +     Done in 1.28s. 
-3.3 PM2 a été intégré à l'image +3.3 PM2 a été intégré à l'image\\ 
-3.4 On a un problème parce que le containeur s'arrête... +3.4 On a un problème parce que le containeur s'arrête...\\ 
-authentication on  master [!?] took 2s +authentication on  master [!?] took 2s\\ 
-λ> docker ps -a +  λ> docker ps -a 
-CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES+  CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
 % %
-3.5 ON rajoute la ligne sur FROM Dockerfile +3.5 ON rajoute la ligne sur FROM Dockerfile\\ 
-CMD ["npx", "pm2-runtime", "process.json"+  CMD ["npx", "pm2-runtime", "process.json"
-3.6 ON régénère l'image docker +3.6 ON régénère l'image docker\\ 
-λ> docker build --pull --rm -f "server/Dockerfile" -t authentication-server:latest "server" +  λ> docker build --pull --rm -f "server/Dockerfile" -t authentication-server:latest "server" 
-3.6bis (on lance toutes ces commandes depuis authentication/server) +3.6bis (on lance toutes ces commandes depuis authentication/server)\\ 
-3.7 on relance +3.7 on relance\\ 
-λ> docker run --rm -it  -p 3000:3000/tcp authentication-server:latest +  λ> docker run --rm -it  -p 3000:3000/tcp authentication-server:latest 
-2020-06-05T14:19:38: PM2 log: Launching in no daemon mode +     2020-06-05T14:19:38: PM2 log: Launching in no daemon mode 
-2020-06-05T14:19:38: PM2 log: [Watch] Start watching authentication_server +     2020-06-05T14:19:38: PM2 log: [Watch] Start watching authentication_server 
-2020-06-05T14:19:38: PM2 log: App [authentication_server:0] starting in -fork mode- +     2020-06-05T14:19:38: PM2 log: App [authentication_server:0] starting in -fork mode- 
-2020-06-05T14:19:38: PM2 log: App [authentication_server:0] online +     2020-06-05T14:19:38: PM2 log: App [authentication_server:0] online 
-2020-06-05 14:19 +00:00: GET / 200 8.003 ms - 35 +     2020-06-05 14:19 +00:00: GET / 200 8.003 ms - 35 
-3.8 ON procède à paramétrer le fichier authentification / server / config / auth.js +3.8 ON procède à paramétrer le fichier authentification / server / config / auth.js\\ 
-3.9 Pour sécuriser l'accès au ldap on va d'abord passer les identifiants ldap de michael par ligne de commande +3.9 Pour sécuriser l'accès au ldap on va d'abord passer les identifiants ldap de michael par ligne de commande\\ 
-λ> docker run --rm -it  -p 3000:3000/tcp -e NODE_ENV=production authentication-server:latest +  λ> docker run --rm -it  -p 3000:3000/tcp -e NODE_ENV=production authentication-server:latest 
-(c'est la variable NOD_ENV qui pemrmet de passer les identifiants) +(c'est la variable NOD_ENV qui pemrmet de passer les identifiants)\\ 
-3.10 (notamment on a balancer tous les données pour s'authentifier sur des variables d'environement) +3.10 (notamment on a balancer tous les données pour s'authentifier sur des variables d'environement)\\ 
-3.11 On fait un commit (git add Dockerfile, process.json, ) et push+3.11 On fait un commit (`git add Dockerfile`, process.json, ) et push 
 4. On fait lipnssh sur lipn-intranet-dev 4. On fait lipnssh sur lipn-intranet-dev
 +
 5. on fait git pull sur le serveur 5. on fait git pull sur le serveur
 +
 6. on créer l'image docker sur le serveur lipn-intranet-dev 6. on créer l'image docker sur le serveur lipn-intranet-dev
-root@lipn-intranet-dev:~/authentication/server# docker build -t authentication-server +  root@lipn-intranet-dev:~/authentication/server# docker build -t authentication-server 
-7. Nous avons installée apache2 sur le serveur et ouvert (avec Xavier) un accès vers +7. Nous avons installée apache2 sur le serveur et ouvert (avec Xavier) un accès vers http://lipn.univ-paris13.fr/intranet 
-http://lipn.univ-paris13.fr/intranet+
 8. On test avec curl si le serveur repond sur le port 3000 8. On test avec curl si le serveur repond sur le port 3000
-λ> curl localhost:3000 +  λ> curl localhost:3000 
-curl -d '{"username": "pepito", "password": "peye"}' -H "Content-Type: application/json" 192.168.90.43:3000/login+     curl -d '{"username": "pepito", "password": "peye"}' -H "Content-Type: application/json" 192.168.90.43:3000/login 
 +    {"error":{"message":"\"ldap://lipn-ldap-maitre:389\" is an invalid LDAP url (protocol)"}} 
 +    garciaflores@villetaneuse:~$
  
-{"error":{"message":"\"ldap://lipn-ldap-maitre:389\" is an invalid LDAP url (protocol)"}}garciaflores@villetaneuse:~$ 
 8.1 Erreur: 8.1 Erreur:
-{"error":{"message":"\"ldap://lipn-ldap-maitre:389\" is an invalid LDAP url (protocol)"}}+  {"error":{"message":"\"ldap://lipn-ldap-maitre:389\" is an invalid LDAP url (protocol)"}}
 8.2 Il faut créer un fichier docker.compose.yml dans le root du projet authentification pour contrer le problème des guillemets (docker ne les interpète pas bien)... ce problème concerne la sécurisation des clés d'authentification dans des fichier des variables d'environnement 8.2 Il faut créer un fichier docker.compose.yml dans le root du projet authentification pour contrer le problème des guillemets (docker ne les interpète pas bien)... ce problème concerne la sécurisation des clés d'authentification dans des fichier des variables d'environnement
 +  root@lipn-intranet-dev:~/authentication# docker-compose  up
 +8.3 La commande CURL marche à partir de lipnssh avec les identifiants de @jaime (pas avec ceux de Jorge ni avec ceux d'Omar)
  
 +9. C'est très bien, on est authenthifié, mais on doit vérifier que le compte soit soit actif dans le LDAP\\
 +9.1 On modifie la commande LDAP sur server/config/auth.js (ligne 11)
  
-root@lipn-intranet-dev:~/authentication# docker-compose  up 
- 
-8.3 La commande CURL marche à partir de lipnssh avec les identifiants de @jaime (pas avec ceux de Jorge ni avec ceux d'Omar) 
-9. C'est très bien, on est authenthifié, mais on doit vérifier que le compte soit soit actif dans le LDAP 
-9.1 On modifie la commande LDAP sur server/config/auth.js (ligne 11) 
 10. On assume que le servur marche, pusisqu'il a authenthifié Jaime (mais pas )mar et Jorge: on procède donc à l'instaallation du client 10. On assume que le servur marche, pusisqu'il a authenthifié Jaime (mais pas )mar et Jorge: on procède donc à l'instaallation du client
 +
 11. On procède à refaire notre docker... 11. On procède à refaire notre docker...
-client/Dockerfile+==client/Dockerfile==
 12. ON a créer le Dockerfile de sorte qu'on désactive nginx et on active Apache 12. ON a créer le Dockerfile de sorte qu'on désactive nginx et on active Apache
-λ> docker build --pull --rm -f "client/Dockerfile" -t authentication-client:latest "client" +  λ> docker build --pull --rm -f "client/Dockerfile" -t authentication-client:latest "client" 
-12.1 Nous avons un erreur d'installation de python 2 dans la ligne 4 du docker +12.1 Nous avons un erreur d'installation de python 2 dans la ligne 4 du docker\\ 
-12.2 ON n'arrive pas à construire l'image docker... on essaye sur lipn-dev+12.2 ON n'arrive pas à construire l'image docker... on essaye sur lipn-dev\\
 12.3 On a finalement compilé l'image client docker 12.3 On a finalement compilé l'image client docker
 +
 13. Dans le root d'authentification on va éditer le fichier docker-compose.yml pour que le service d'authentification soit crée au même temps que le serveur. On ajoute le champs 'restart:always' afin que le service soit toujours actif 13. Dans le root d'authentification on va éditer le fichier docker-compose.yml pour que le service d'authentification soit crée au même temps que le serveur. On ajoute le champs 'restart:always' afin que le service soit toujours actif
 +
 14. La commande docker-compose up crée les deux services qu'on vient de définir sur docker-compose.yml 14. La commande docker-compose up crée les deux services qu'on vient de définir sur docker-compose.yml
-λ> docker-compose up +  λ> docker-compose up
-(Jaime nous explique que la commande docker-compose équivaut à des commandes succéssives du build, mais paramétrées avec un fichier .yml) +
-14. La commande docker-compose up crée les deux services qu'on vient de définir sur docker-compose.yml +
-λ> docker-compose up+
 (Jaime nous explique que la commande docker-compose équivaut à des commandes succéssives du build, mais paramétrées avec un fichier .yml) (Jaime nous explique que la commande docker-compose équivaut à des commandes succéssives du build, mais paramétrées avec un fichier .yml)
 +
 15. Nous avons une erreur sur le docker-compose 15. Nous avons une erreur sur le docker-compose
-ERROR: for authentication-client Cannot start service client: driver failed programming external connectivity on endpoint authentication-client (be8d6229453f396bb2dc7b3bfd150b6f56c58c50218f1db81c6b560a856719c6): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address +  ERROR: for authentication-client Cannot start service client: driver failed programming external connectivity on endpoint authentication-client (be8d6229453f396bb2dc7b3bfd150b6f56c58c50218f1db81c6b560a856719c6): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address 
-l'image docker ne lis pas le champ JWT_SECRET de notre .env +l'image docker ne lis pas le champ JWT_SECRET de notre .env\\ 
-15.1 ON essaye de sortir notre fichier .env de l'image docker +15.1 ON essaye de sortir notre fichier .env de l'image docker\\ 
-15.2 on galère avec les guillemets et l'image docker+15.2 on galère avec les guillemets et l'image docker\\
 15.3 dans le serveur intranet-dev ça marche 15.3 dans le serveur intranet-dev ça marche
-16. Il faut modifier le proxy pour que + 
-lipn.univ-paris13.fr/intranet-dev point sur localhost:8080+16. Il faut modifier le proxy pour que lipn.univ-paris13.fr/intranet-dev point sur localhost:8080\\
 16.1 ON a éditer le fichier /etc/apache2/sites-enabled pour déclarer le proxy 16.1 ON a éditer le fichier /etc/apache2/sites-enabled pour déclarer le proxy
-ProxyPass / http://localhost:8080/ +  ProxyPass / http://localhost:8080/ 
-ProxyPassReverse / http://localhost:8080/+  ProxyPassReverse / http://localhost:8080/
 16.2 Maintenant nous avons un problème de ressources (mais la page réponde sur ) 16.2 Maintenant nous avons un problème de ressources (mais la page réponde sur )
-http://lipn.univ-paris13.fr/intranet-dev +  http://lipn.univ-paris13.fr/intranet-dev 
-[lipn.univ-paris13.fr] +  [lipn.univ-paris13.fr] 
-Apache2 Debian Default Page: It works +  Apache2 Debian Default Page: It works 
-Apache2 Debian Default Page It works! This is the default welcome page used to test the correct operation of the Apache2 server after installation on Debian systems. If you can read this page, it means that the Apache HTTP server installed at this site is working properly. You should +  Apache2 Debian Default Page It works! This is the default welcome page used to test the correct operation of the Apache2 server after installation on Debian systems. If you can read this page, it means that the Apache HTTP server installed at this site is working properly. You should 
-CMD ["npx", "pm2-runtime", "process.json"]+  CMD ["npx", "pm2-runtime", "process.json"]
  
-    On clone https://depot.lipn.univ-paris13.fr/etamine/plugins/gateway sur la racine de lipn-intranet-dev+On clone https://depot.lipn.univ-paris13.fr/etamine/plugins/gateway sur la racine de lipn-intranet-dev
  
-[depot.lipn.univ-paris13.fr] +  [depot.lipn.univ-paris13.fr] 
-Sign in +  Sign in 
- - GitLab +   - GitLab 
-LIPN GitLab+  LIPN GitLab
  
-    On va créer le fichier Dockerfile à la racine de gateway+On va créer le fichier Dockerfile à la racine de gateway
  
-    Jorge GARCIA FLORES (Fri, Jun 12, 6:56 AM)FROM node:lts-alpine+    FROM node:lts-alpine
     Working directory     Working directory
     WORKDIR /app     WORKDIR /app
Ligne 126: Ligne 133:
     CMD ["npx", "pm2-runtime", "process.json"]     CMD ["npx", "pm2-runtime", "process.json"]
  
-    On attire notre attention sur le fichier gateway.config.yml où son configurés les ports d'écoute de gateway+On attire notre attention sur le fichier gateway.config.yml où son configurés les ports d'écoute de gateway// 
 +On configure le fichier docker.compose.yml
  
-Jorge GARCIA FLORES a envoyé une image +    version: '3.1' 
-image.png +    services: 
-Télécharger image.png (109.93 KB) +    gateway: 
-Jorge GARCIA FLORES+    container_name: gateway 
 +    restart: always 
 +    build: 
 +    ports: 
 +        - 8080:8080 
 +    environment: 
 +        - AUTH_ENDPOINT=http://localhost:3000 
 +        - BOOKING_ENDPOINT=http://localhost:3001 
 +        - PUBLICATION_ENDPOINT=http://localhost:3002
  
-    On configure le fichier docker.compose.yml+depuis /gateway on fait docker-compose up\\ 
 +cette commande a créer les images et il a lancer les conteneurs docker\\ 
 +on lance le service d'authentification 
 +  cd /authentification/ 
 +  docker-compose up 
 +Nous avons un erreur parce qu'autant le service d'authentification que le gateway utilisent le port 8080\\ 
 +On configure les ports sur un ficher .env dans /gateway
  
-version'3.1'+  GATEWAY_PORT=8000 
 +  GATEWAY_HOST=localhost 
 +  AUTH_ENDPOINT=http://localhost:3000 
 +  BOOKING_ENDPOINT=http://localhost:3001 
 +  PUBLICATION_ENDPOINT=http://localhost:3002
  
-services: +  root@lipn-intranet-dev:~/gateway# docker-compose up --build
-gateway: +
-container_name: gateway +
-restart: always +
-build: . +
-ports: +
-- 8080:8080 +
-environment: +
-- AUTH_ENDPOINT=http://localhost:3000 +
-- BOOKING_ENDPOINT=http://localhost:3001 +
-- PUBLICATION_ENDPOINT=http://localhost:3002 +
-Jorge GARCIA FLORES +
-depuis /gateway on fait docker-compose up +
-cette commande a créer les images et il a lancer les conteneurs docker +
- +
-    on lance le service d'authentification +
-    cd /authentification/ +
-    docker-compose up +
- +
-    Nous avons un erreur parce qu'autant le service d'authentification que le gateway utilisent le port 8080 +
- +
-    On configure les ports sur un ficher .env dans /gateway +
- +
-GATEWAY_PORT=8000 +
-GATEWAY_HOST=localhost +
-AUTH_ENDPOINT=http://localhost:3000 +
-BOOKING_ENDPOINT=http://localhost:3001 +
-PUBLICATION_ENDPOINT=http://localhost:3002 +
- +
-    root@lipn-intranet-dev:~/gateway# docker-compose up --build+
  
 MAIS l'erreur persiste (gateway continue à écouter sur le port 8080) MAIS l'erreur persiste (gateway continue à écouter sur le port 8080)
 +On va le ressoudre de la façon suivante:
  
-    On va le ressoudre de la façon suivante: 
- 
-image.png 
-Télécharger image.png (66.5 KB) 
 25.1 sur le docker.compose on déclare ports: 8000:8080 25.1 sur le docker.compose on déclare ports: 8000:8080
 c'est à dire, le port extérieur 8000 est redirigé vers le port 8080 du conteneur docker c'est à dire, le port extérieur 8000 est redirigé vers le port 8080 du conteneur docker
-25.2 et sur le Docker file on expose 8080 +25.2 et sur le Docker file on expose 8080\\ 
-image.png +image.png\\ 
-Télécharger image.png (51.57 KB)+Télécharger image.png (51.57 KB)\\ 
 26 on supprime le fichier .env qu'on avait fait sur /gateway 26 on supprime le fichier .env qu'on avait fait sur /gateway
-27 on démarre le serveur sur intranet-dev avec docker-compose up -d pour lui dire que c'est un daemon 
-image.png 
-Télécharger image.png (167.97 KB) 
  
-    maintenant les conteneurs docker pour l'authentification et pour le gatweays sont lancés+27 on démarre le serveur sur intranet-dev avec docker-compose up -d pour lui dire que c'est un daemon\\ 
 +image.png\\ 
 +Télécharger image.png (167.97 KB)\\
  
-et sur le navigateur depuis l'extérieur l'adresse lipn.univ-paris13.fr/intranet-dev réponds... +maintenant les conteneurs docker pour l'authentification et pour le gatweays sont lancés et sur le navigateur depuis l'extérieur l'adresse lipn.univ-paris13.fr/intranet-dev réponds...\\ 
-Screenshot_20200612_075852.png +Screenshot_20200612_075852.png\\ 
-Télécharger Screenshot_20200612_075852.png (283.95 KB)+Télécharger Screenshot_20200612_075852.png (283.95 KB)\\
  
-    On va tester juste le serveur d'authentification à travers gateway+On va tester juste le serveur d'authentification à travers gateway
  
 et nous avons un erreur Bad request et nous avons un erreur Bad request
-curl -d '{"username": "pepito", "password":"peye"}' -H "Content-Type: application/json" 192.168.90.43:3000/login +  curl -d '{"username": "pepito", "password":"peye"}' -H "Content-Type: application/json" 192.168.90.43:3000/login 
-curl -d '{"username": "pepito", "password":"peye"}' -H "Content-Type: application/json" 192.168.90.43:3000/login +  curl -d '{"username": "pepito", "password":"peye"}' -H "Content-Type: application/json" 192.168.90.43:3000/login 
-Empty reponse from server+  Empty reponse from server
  
-    On essaye de changer le port du gateway à 8081 sur docker-compose.yml+On essaye de changer le port du gateway à 8081 sur docker-compose.yml
  
-services: +  services: 
-gateway: +    gateway: 
-container_name: gateway +      container_name: gateway 
-restart: always +      restart: always 
-build: . +      build: . 
-ports: +      ports: 
-- 8081:8080 +        - 8081:8080 
-environment: +      environment: 
-- GATEWAY_PORT=8080 +        - GATEWAY_PORT=8080 
-- GATEWAY_HOST=localhost +        - GATEWAY_HOST=localhost 
-- AUTH_ENDPOINT=http://localhost:3000 +        - AUTH_ENDPOINT=http://localhost:3000 
-- BOOKING_ENDPOINT=http://localhost:3001 +        - BOOKING_ENDPOINT=http://localhost:3001 
-- PUBLICATION_ENDPOINT=http://localhost:3002 +        - PUBLICATION_ENDPOINT=http://localhost:3002
-Jorge GARCIA FLORES +
- +
-    On essaye de mofidier gateway/config/gateway.config.yml pour configurer directement le port 8081 +
- +
-Jorge GARCIA FLORES+
  
-    Notre problème est que les containeurs docker ne communique pas entre eux (gateway est isolé d'authentication)+On essaye de mofidier gateway/config/gateway.config.yml pour configurer directement le port 8081 
 +Notre problème est que les containeurs docker ne communique pas entre eux (gateway est isolé d'authentication)
  
 31.1 On va créer un réseaux virtuel entre containeurs docker 31.1 On va créer un réseaux virtuel entre containeurs docker
-root@lipn-intranet-dev:~# docker network connect my_bridge authentication-api +  root@lipn-intranet-dev:~# docker network connect my_bridge authentication-api 
-root@lipn-intranet-dev:~# docker network connect my_bridge authentication-api+  root@lipn-intranet-dev:~# docker network connect my_bridge authentication-api
 Jaime ARIAS Jaime ARIAS
 docker container exec -it gateway sh docker container exec -it gateway sh
Ligne 614: Ligne 604:
  
 ==97. Publications== ==97. Publications==
 +
 +root@lipn-intranet-dev:~# docker-compose ps
 +       Name                      Command               State           Ports         
 +-------------------------------------------------------------------------------------
 +authentication-api    docker-entrypoint.sh npx p ...   Up      3000/tcp              
 +authentication-app    nginx -g daemon off;             Up      0.0.0.0:8080->80/tcp  
 +database              docker-entrypoint.sh mongod      Up      27017/tcp             
 +gateway               docker-entrypoint.sh npx p ...   Up      0.0.0.0:8081->8081/tcp
 +publications-api      docker-entrypoint.sh npx p ...   Up      3000/tcp              
 +publications-app      nginx -g daemon off;             Up      0.0.0.0:8082->80/tcp  
 +user_management-api   docker-entrypoint.sh npx p ...   Up      3000/tcp
 +
 +
 97.1 Test d'accès sur le serveur 97.1 Test d'accès sur le serveur
 Le serveur répond sur localhost:8081/publication Le serveur répond sur localhost:8081/publication
Ligne 639: Ligne 642:
 [] []
  
-97.2 Test d'accès sur le client de publication+97.2 Test d'accès vers le client de publication
 Le conteneur client répond sur localhost:8082 Le conteneur client répond sur localhost:8082
 et la requête GET est bien enregistrée sur le logs du conteneur publications-app et la requête GET est bien enregistrée sur le logs du conteneur publications-app
 +
 +root@lipn-intranet-dev:~# http localhost:8082
 +HTTP/1.1 200 OK
 +Accept-Ranges: bytes
 +Connection: keep-alive
 +Content-Length: 966
 +Content-Type: text/html
 +Date: Fri, 26 Jun 2020 16:38:38 GMT
 +ETag: "5ef5f834-3c6"
 +Last-Modified: Fri, 26 Jun 2020 13:29:24 GMT
 +Server: nginx/1.18.0
 +
 +<!DOCTYPE html>
 +<html lang="en">
 +
 +<head>
 +  <meta charset="utf-8">
 +  <meta http-equiv="X-UA-Compatible" content="IE=edge">
 +  <meta name="viewport" content="width=device-width,initial-scale=1.0">
 +  <link rel="icon" href="/favicon.ico">
 +  <link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
 +  <link href="https://cdn.jsdelivr.net/npm/@mdi/font@4.x/css/materialdesignicons.min.css" rel="stylesheet">
 +  <title>Etamine v5</title>
 +<link href="/js/app.js" rel="preload" as="script"><link href="/js/chunk-vendors.js" rel="preload" as="script"></head>
 +
 +<body>
 +  <noscript>
 +    <strong>We're sorry but client doesn't work properly without JavaScript enabled. Please enable it to
 +      continue.</strong>
 +  </noscript>
 +  <div id="app"></div>
 +  <!-- built files will be auto injected -->
 +<script type="text/javascript" src="/js/chunk-vendors.js"></script><script type="text/javascript" src="/js/app.js"></script></body>
 +
 +</html>
 +
 +
 +root@lipn-intranet-dev:~# docker logs publications-app
 +172.19.0.1 - - [26/Jun/2020:16:17:19 +0000] "GET / HTTP/1.1" 200 966 "-" "HTTPie/0.9.8" "-"
 +172.19.0.1 - - [26/Jun/2020:16:18:44 +0000] "GET / HTTP/1.1" 200 966 "-" "HTTPie/0.9.8" "-"
 +
 +
 +
  
 98. Authentification 98. Authentification
 +98.1 Test d'accès à authentication-api depuis le serveur intranet-dev
 +
 +$ http localhost
 +$  docker logs authentication-app
 +x86_64; rv:77.0) Gecko/20100101 Firefox/77.0" "200.57.193.75, 192.168.90.15"
 +172.19.0.1 - - [26/Jun/2020:15:11:56 +0000] "GET /favicon.ico HTTP/1.1" 200 1150 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0" "200.57.193.75, 192.168.90.15"
 +172.19.0.1 - - [26/Jun/2020:15:15:11 +0000] "GET / HTTP/1.1" 200 654 "-" "HTTPie/0.9.8" "::1"
 +172.19.0.1 - - [26/Jun/2020:15:16:37 +0000] "GET / HTTP/1.1" 200 654 "-" "HTTPie/0.9.8" "::1"
 +
 +(sur authentication-api il n'y a rien puisque la demande n'est parvenue au serveur)
 +
 +98.2 Test de login à authentication-api depuis le serveur intranet-dev
 +
 +root@lipn-intranet-dev:~# http localhost:8081/login 
 +HTTP/1.1 404 Not Found
 +Connection: keep-alive
 +Content-Length: 144
 +Content-Security-Policy: default-src 'none'
 +Content-Type: text/html; charset=utf-8
 +Date: Fri, 26 Jun 2020 15:43:54 GMT
 +X-Content-Type-Options: nosniff
 +
 +<!DOCTYPE html>
 +<html lang="en">
 +<head>
 +<meta charset="utf-8">
 +<title>Error</title>
 +</head>
 +<body>
 +<pre>Cannot GET /login</pre>
 +</body>
 +</html>
 +
 +Le //cannot GET// est causé par une configuration dans ''/root/gateway/config/gateway-config.yml''
 +
 +98.3 tests avec curl depuis le réseau lipn
 +[garciaflores@merkel ~]$ curl POST 192.168.90.43
 +[root@lipn-intranet-dev] $ docker logs authentication-app
 +172.19.0.1 - - [26/Jun/2020:15:59:03 +0000] "GET / HTTP/1.1" 200 654 "-" "curl/7.52.1" "10.10.0.185"
 +172.19.0.1 - - [26/Jun/2020:16:01:16 +0000] "GET / HTTP/1.1" 200 654 "-" "curl/7.52.1" "10.10.0.185"
 +
 +98.4 test avec Google chrome depuis http://lipn.univ-paris13.fr/intranet-dev en cliquant sur la touche LOGIN
 +
 +172.19.0.1 - - [26/Jun/2020:16:08:26 +0000] "GET / HTTP/1.1" 200 654 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36" "200.57.193.75, 192.168.90.15"
 +172.19.0.1 - - [26/Jun/2020:16:08:27 +0000] "GET /app.js HTTP/1.1" 200 5181766 "https://lipn.univ-paris13.fr/intranet-dev/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36" "200.57.193.75, 192.168.90.15"
 +172.19.0.1 - - [26/Jun/2020:16:08:37 +0000] "GET /favicon.ico HTTP/1.1" 200 1150 "https://lipn.univ-paris13.fr/intranet-dev/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36" "200.57.193.75, 192.168.90.15"
 +172.19.0.1 - - [26/Jun/2020:16:08:54 +0000] "GET /fonts/MaterialIcons-Regular.bca3a187.woff2 HTTP/1.1" 200 59000 "https://lipn.univ-paris13.fr/intranet-dev/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36" "200.57.193.75, 192.168.90.15"
 +
  
 99. docker-compose ps: liste les containers ainsi que leurs status 99. docker-compose ps: liste les containers ainsi que leurs status
 +
 +100. Nous avons ajouté le fichier vue.config.js dans le client de publication.
 +
 +101. On fait un diff entre le fichier axios.js du client d'authentication et le fichier axios.js du client de publication
 +Nous avons ajouté un dossier backup pour avoir une copie du fichier axios.js.
 +Ensuite nous avons modifié le fichier axios.js dans le dossier src du client de publications.
 +
 +102. On a modifier la ligne "COPY --from=build-stage /app/dist /usr/share/nginx/html/" par "COPY --from=build-stage /app/dist /usr/share/nginx/html/publication".
 +Apres cette modification la page web affiche maintenant "Welcome to nginx" mais toujours pas la page de publication
 +
 +103. Jaime nous a aidé à résoudre le problème. Il a reconfiguré le fichier vue.config.js. 
 +Il a également réorganisé le docker-compose. Ce fichier se trouve maintenant dans le dossier intranet.
 +Nous avons ensuite netoyé les dossiers en supprimant tous les backup et les tests qui ne sont plus utiles.
 +
 +=== TEST MODULE DE PUBLICATION ===
 +
 +== CREATION DE PUBLICATION ==
 +
 +1. Nous avons essayé de créer une publication, mais le systeme nous retourne une erreur:\\
 +Requete:\\
 +  Request URL:https://lipn.univ-paris13.fr/intranet-dev/api/publication
 +  Request Method:POST
 +  Remote Address:194.254.163.36:443
 +  Status Code: 400
 +  Version:HTTP/1.1
 +  Referrer Policy:no-referrer-when-downgrade
 +
 +Data:\\
 +<code javascript>
 +  {
 +    "custom":
 +    {
 +      "labCategory": "livr",
 +      "labStatus": "apar",
 +      "labTime": "ant",
 +      "labTop": "ving"
 +    },
 +    "authors":[
 +      {
 +        "lastName": "Arias",
 +        "firstName": "Jaime"
 +      },
 +      {
 +        "lastName": "Garcia Flores",
 +        "firstName": "Jorge"
 +      }
 +    ],
 +    "key": "45767c5294",
 +    "title": "Test",
 +    "year": 2020,
 +    "type": "Unpublished",
 +    "pages": "123",
 +    "doi": "test",
 +    "month": "11",
 +    "address": "5 rue",
 +    "url": "http://test.test",
 +    "note": "test",
 +    "abstract": "test",
 +    "created_by": "test_user",
 +    "modified_by": "test_user"
 +  }
 +</code>
 +Réponse:\\
 +<code javascript>
 +  {
 +    "error":{
 +      "message": "\"user\" is not allowed"
 +    }
 +  }
 +</code>
 +
 +Notre probleme est le suivant:\\
 +Le serveur nous dit que le champ "user" n'est pas autorisé alors que nous ne fournissions pas cette donnée.
  • Dernière modification: il y a 4 ans