|
|
3 năm trước cách đây | |
|---|---|---|
| .ssh | 6 năm trước cách đây | |
| apps | 6 năm trước cách đây | |
| docker | 3 năm trước cách đây | |
| useruploaddata | 5 năm trước cách đây | |
| .DS_Store | 6 năm trước cách đây | |
| .dockerignore | 5 năm trước cách đây | |
| .env.skeleton | 3 năm trước cách đây | |
| .gitignore | 4 năm trước cách đây | |
| README.md | 3 năm trước cách đây | |
| docker-compose.yaml | 3 năm trước cách đây | |
| logo.png | 4 năm trước cách đây |
Le projet docker offre un environnement de développement complet.
Installer Docker Engine : https://docs.docker.com/install/linux/docker-ce/ubuntu/
Et Docker Compose : https://docs.docker.com/compose/install/
Faire :
docker ps
Si Docker ne marche pas sans "sudo" appliquer :
https://techoverflow.net/2017/03/01/solving-docker-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket/
sudo usermod -aG docker $USER
git clone git@gitlab.2iopenservice.com:vincent/docker.git
Les repositories suivants doivent être clônés dans les sous-répertoires suivants:
| Folder | Repo | SSH |
|---|---|---|
| apps/opentalent | Voir le repository | |
| apps/opentalent-admin-2.0 | Voir le repository | |
| apps/opentalent-config | Voir le repository | |
| apps/opentalent-platform | Voir le repository | |
| apps/ot_typo3 | Voir le repository | |
| apps/portail | - | - |
| apps/metabase | Voir le repository | |
| apps/python-scripts/clonedb | Voir le repository | |
| apps/frames | Voir le repository | |
| apps/ap2i | Voir le repository | |
| apps/ap2i-doc | Voir le repository | |
| apps/app | Voir le repository | |
| apps/app-doc | Voir le repository |
| Db Host | db |
| Login | root |
| Pass | mysql660 |
nginxTODO: à quoi il sert?
php70Héberge la partie back du logiciel: https://gitlab.2iopenservice.com/opentalent/opentalent-platform
Ce container embarque une installation de php-fpm v7.0.
nginx_newTODO: à quoi il sert?
ap2iServeur sur lequel est présent la version Symfony 5.3 du Back. Penser à copier le dossier ap2i/jwt vers config
mercureServeur Caddy servant de hub Mercure
python39Héberge différents scripts python, dont clonedb.
Embarque une installation de python3.9.
adminHéberge l'application frontend Opentalent, version pré-2021: https://gitlab.2iopenservice.com/vincent/opentalent-admin-2.0/-/tree/master-front
appHéberge l'application frontend Opentalent, version post-2021: https://gitlab.2iopenservice.com/opentalent/app
portailHéberge une instance Typo3 version 8.7, qui sert entre autres le portail Opentalent et le site 2iOpenservice
typo3Héberge une instance Typo3 version 9.5, qui sert tous les mini-sites des clients.
framesHéberge l'application Frames. Voir ici: https://gitlab.2iopenservice.com/opentalent/frames
adminassosTODO: à quoi il sert?
metabaseTODO: à quoi il sert?
esHéberge une instance elasticsearch TODO: à compléter
thumborHéberge une instance thumbor dont le rôle est de fournir des fichiers via une API.
phpmyadminHéberge une instance phpmyadmin
mailcatcherTODO: à quoi il sert?
blackfireHéberge une instance blackfire, utilisée pour l'analyse des performances des dockers php
phpdocHéberge une instance phpdoc, qui permet ensuite de générer des documentations automatiques à partir du code PHP.
jsdocTODO: à quoi il sert?
Si les docker sont up, tout arrêter:
docker-compose stop
Ajouter les lignes suivantes au fichier docker/nginx-proxy/certs/ssl_keys.sh
cp docker/nginx-proxy/certs/default.key docker/nginx-proxy/certs/<my-domain.fr>.key
cp docker/nginx-proxy/certs/default.crt docker/nginx-proxy/certs/<my-domain.fr>.crt
en remplaçant <my-domain.fr> par le nom de domaine attendu.
Copier les deux fichiers nouvellement générés dans
Exécuter le script depuis la racine du projet docker:
sh docker/nginx-proxy/certs/ssl_keys.sh
Supprimer le docker nginx-proxy, puis rebuilder:
docker-compose rm nginx-proxy
docker-compose build --no-cache
Puis relancer docker.
Pour que le certificat soit validé sur chrome, allez à l'adresse cible, ouvrir la console de debugger et entrer :
console.log(window.atob('dGhpc2lzdW5zYWZl'));
Cliquer ensuite n'importe où sur la page, et taper le mot qui s'est affiché dans la console précédemment.
Lorsque vous demandez la page http://local.admin.opentalent.fr/#/login , la page reste blanche, et le message d'erreur suivants s'affichent dans la console:
Uncaught Error: Cannot find module "@opentalent/ruler/lib/model/rule.class"
Accéder au container adminLegacy:
docker exec -it admin bash
Puis exécuter:
cd modules/ruler && jison -t rule.jison && babel --presets=es2015 model/**/*.js model/*.js -d lib && npm link && cd ../.. && npm link @opentalent/ruler
Enfin, relancer:
gulp serve
Lorsque vous demandez la page https://local.api.opentalent.fr/doc, une erreur php s'affiche, avec un message similaire à ceci :
RuntimeException in ClassCollectionLoader.php line 280: Cache directory "/var/www/html/app/cache/dev" is not writable.
Accéder au docker php70 :
docker exec -it php70 bash
Puis exécuter :
chmod -R 777 /var/www/html/app/cache/
Lorsque l'un de vos containers essaie d'accéder à un serveur extérieur en SSH, l'accès est refusé.
Vérifier d'abord que le répertoire ~/.ssh de votre machine a bien été copié dans le docker à l'emplacement:
/root/.ssh
Si ce n'est pas le cas, ajouter la ligne suivante au Dockerfile concerné:
COPY /.ssh /root/.ssh
Et relancer un:
docker-compose build
Si le problème persiste, vérifier que les droits du répertoire .ssh sont identiques à ceci:
drwxr-xr-x 1 root root 4096 Feb 24 16:01 .
drwx------ 1 root root 4096 May 10 12:04 ..
-rw-r--r-- 1 root root 0 Mar 18 2020 .gitkeep
-rw------- 1 root root 887 Mar 18 2020 id_rsa
-rw------- 1 root root 1678 Mar 18 2020 id_rsa_exploitation
-rw-r--r-- 1 root root 397 May 15 2020 id_rsa_exploitation.pub
-rw-r--r-- 1 root root 888 May 12 14:19 known_hosts
Accéder au docker php70:
docker exec -it php70 bash
Lancer:
app/console d:s:u --force
Suite à une modification des annotations, il faut forcer un vidage du cache symfony:
Accéder au docker php70:
docker exec -it php70 bash
Lancer:
rm -r app/cache/*
chmod -R 777 app/cache/
Puis quitter le docker:
exit
et le redémarrer:
docker restart
Pour régénérer l'index elasticsearch:
Accéder au docker php70:
docker exec -it php70 bash
Lancer, puis interrompre dès qu'il commence à populate les organizations :
php app/console fos:elastica:populate --index search
Se rendre sur l'interface graphique elasticsearch, et se connecter à https://local.elasticsearch.opentalent.fr/
Attention à ce que le navigateur ne bloque pas le certificat SSL, essayez d'abord d'ouvrir https://local.elasticsearch.opentalent.fr/ dans un onglet à part
Supprimer l'alias search de l'index qui le porte, et ajouter ce même alias à l'index nouvellement créé
Faire, dans cet ordre précis:
Couper le VPN
Couper le service docker:
sudo systemctl stop docker
Redémarrer le VPN
Redémarrer docker
sudo systemctl start docker
Vérifier que le fichier .env existe dans le projet. Sinon:
ln -s .env.local .env
Il suffit de se loguer pour résoudre cette erreur: local.admin.opentalent.fr/#/login
Si on est déjà authentifié côté back, vérifier qu'on accède bien au front en https, sans quoi les cookies opentalent.fr ne seront pas accessibles.
# Build docker compose
docker-compose build
# Lancer le docker-compose == lancer les containers
docker-compose up
# Stopper le docker-compose == stopper les containers
docker-compose stop
# Stopper tous les containers quelque soit le docker-compose
docker stop $(docker ps -a -q)
# Supprimer tous les container Docker
docker rm $(docker ps -a -q)
# Supprimer toutes les images Docker
docker rmi $(docker images -q)
# Lister les proccess Docker
docker ps
# Lister les containers actifs
docker container ls
# Lister tous les containers
docker container ls -a
# Lister les images
docker images
# Entrer dans un container en bash
docker exec -it db bash ==> db étant le container name que l'on retrouve en faisant docker ps
# Docker compose a une facheuse tendance à conserver des config entre chaque lancement (comme la config de la BDD)
# si par exemple, on arrive pas à se connecter à la BDD à cause d'un Access Denied, il faut faire:
docker-compose rm -v