Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
txs:framadate-p18:developpement [2018/03/02 01:32] – [Code sur un repository Git distant] dev=>develop andres | txs:contrib:framadate_p18:developpement [2020/09/16 11:24] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ===== Développement de Framadate avec Docker ===== | ||
+ | |||
+ | ==== Docker ==== | ||
+ | |||
+ | Pour développer et tester Framadate, Picasoft utilise [[https:// | ||
+ | |||
+ | Dans cet article on va considérer que vous travaillez dans un dossier nommé '' | ||
+ | |||
+ | Donc pour toute les commandes que nous proposerons vous devrez être dans ce dossier : '' | ||
+ | |||
+ | ==== Installer Docker ==== | ||
+ | |||
+ | Il faut installer '' | ||
+ | Sous Debian / Ubuntu, exécuter '' | ||
+ | |||
+ | ==== Configurer Docker ==== | ||
+ | |||
+ | Créer le groupe docker:\\ | ||
+ | '' | ||
+ | et ajouter notre user à ce groupe:\\ | ||
+ | '' | ||
+ | |||
+ | Il faut ensuite fermer la session et la réouvrir. Maintenant, si on exécute '' | ||
+ | |||
+ | ==== Image Framadate ==== | ||
+ | |||
+ | Docker fait tourner des images Docker (une image est donc un environnement exécutable). Une image docker est le résultat d'une compilation (build) d'un ensemble de fichiers qui décrit quels programmes doivent s' | ||
+ | |||
+ | On peut donc, avec Docker, soit utiliser une image déjà compilée, soit construire sa propre image à partir d'un Dockerfile. | ||
+ | Dans le cadre de la TX le but étant de développer notre propre version de Framadate, nous devrons reconstruire notre propre image. | ||
+ | |||
+ | ==== Sources de l' | ||
+ | |||
+ | Picasoft propose une base de fichiers sources permettant de compiler une image de Framadate à partir de la dernière version stable de Framadate. Nous allons construire cette première image, la tester, et voir ensuite comment construire des images avec notre propre code. | ||
+ | |||
+ | Les sources pour construire l' | ||
+ | Il s'agit d'un repository Gitlab privé, il faut donc demander les accès à un des membres de Picasoft. | ||
+ | |||
+ | Pour récupérer ces sources : | ||
+ | - on clone le dépôt Git des Dockerfiles de Picasoft : '' | ||
+ | - on récupère les sources qui nous intéressent : '' | ||
+ | Git va demander des identifiants, | ||
+ | |||
+ | ==== Repository Docker de Picasoft ==== | ||
+ | |||
+ | L' | ||
+ | * On se connecte au // | ||
+ | * On peut aussi récupérer un fichier '' | ||
+ | **Attention** : si vous êtes sur le réseau de l'UTC (par exemple à Roberval, la Mare, la Ruche, ...) le port utilisé est bloqué, vous ne pourrez pas utiliser le registry (il faudra passer par un VPN par exemple, ou utiliser une connexion 3G/4G) | ||
+ | |||
+ | |||
+ | ===== Déployer un Framadate de test ===== | ||
+ | |||
+ | ==== Préparation ==== | ||
+ | |||
+ | On crée le fichier '' | ||
+ | |||
+ | < | ||
+ | version: " | ||
+ | services: | ||
+ | framadate-db: | ||
+ | container_name: | ||
+ | image: mysql:5.7 | ||
+ | command: --sql-mode=" | ||
+ | volumes: | ||
+ | - ./ | ||
+ | environment: | ||
+ | - MYSQL_ROOT_PASSWORD=motdepasseroot | ||
+ | - MYSQL_USER=framadate | ||
+ | - MYSQL_PASSWORD=framadatedbpassword | ||
+ | - MYSQL_DATABASE=framadate | ||
+ | restart: always | ||
+ | |||
+ | framadate: | ||
+ | container_name: | ||
+ | image: framadate | ||
+ | links: | ||
+ | - framadate-db: | ||
+ | ports: | ||
+ | - 80:80 | ||
+ | environment: | ||
+ | - DOMAIN=localhost | ||
+ | - APP_NAME=Framadate | ||
+ | - ADMIN_MAIL=mon@email.fr | ||
+ | - MYSQL_USER=framadate | ||
+ | - MYSQL_PASSWORD=framadatedbpassword | ||
+ | - MYSQL_DB=framadate | ||
+ | - MYSQL_HOST=mysql | ||
+ | - ADMIN_USER=admin | ||
+ | - ADMIN_PASSWORD=adminpassword | ||
+ | - DISABLE_SMTP=true | ||
+ | restart: always | ||
+ | </ | ||
+ | |||
+ | On crée aussi un dossier qui permettra de stocker les données de la base de données de manière persistante avec la commande '' | ||
+ | |||
+ | NB : le paramètre -p permet de créer directement l' | ||
+ | |||
+ | ==== Build de l' | ||
+ | |||
+ | On lance la commande : '' | ||
+ | |||
+ | Ceci va builder l' | ||
+ | |||
+ | On peut vérifier que celle-ci est bien présente sur la machine en affichant la liste des images avec '' | ||
+ | |||
+ | |||
+ | |||
+ | ==== Démarrage du service ==== | ||
+ | |||
+ | Une fois que l' | ||
+ | |||
+ | On peut voir les logs du conteneur avec la commande '' | ||
+ | |||
+ | La première fois que vous lancez Framadate en local, il est nécessaire de faire la migration des bases de données. Pour cela il suffit de se rendre sur '' | ||
+ | |||
+ | Framadate est ainsi accessible via votre navigateur à l' | ||
+ | |||
+ | Note : le service est configuré pour être lancé sur le port 80, si vous avez déjà quelque chose sur le port 80 sur votre machine, modifiez le fichier '' | ||
+ | |||
+ | ===== Test son code Framadate ===== | ||
+ | |||
+ | ==== Code sur un repository Git distant ==== | ||
+ | |||
+ | L' | ||
+ | Dans l' | ||
+ | |||
+ | Pour commencer il faut récupérer l'URL pour cloner votre //fork// (il doit être publiquement accessible). Dans l' | ||
+ | Ensuite on modifie le fichier '' | ||
+ | < | ||
+ | RUN git clone https:// | ||
+ | </ | ||
+ | devient | ||
+ | < | ||
+ | RUN git clone https:// | ||
+ | </ | ||
+ | |||
+ | De plus on veut utiliser le code qui est sur la branche '' | ||
+ | < | ||
+ | ARG FRAMADATE_VERSION=1.0.3 | ||
+ | </ | ||
+ | devient | ||
+ | < | ||
+ | ARG FRAMADATE_VERSION=develop | ||
+ | </ | ||
+ | |||
+ | Enfin, on build de nouveau l' | ||
+ | |||
+ | ==== Code en local ==== | ||
+ | |||
+ | Il est aussi possible de tester direct une version modifiée du code de Framadate qui se trouve sur votre machine. | ||
+ | |||
+ | Dans l' | ||
+ | |||
+ | Pour commencer on va copier les [[https:// | ||
+ | < | ||
+ | cp ./ | ||
+ | cd / | ||
+ | </ | ||
+ | |||
+ | Ensuite on modifie le fichier '' | ||
+ | < | ||
+ | # Install Framadate | ||
+ | RUN git clone https:// | ||
+ | && cd / | ||
+ | && git checkout $FRAMADATE_VERSION \ | ||
+ | && php -r " | ||
+ | && touch admin/ | ||
+ | && chmod 700 admin/ | ||
+ | && mkdir tpl_c \ | ||
+ | && php composer.phar install --no-interaction | ||
+ | </ | ||
+ | devient | ||
+ | < | ||
+ | # Copy local files | ||
+ | COPY . / | ||
+ | |||
+ | # Install Framadate | ||
+ | RUN cd / | ||
+ | && php -r " | ||
+ | && touch admin/ | ||
+ | && chmod 700 admin/ | ||
+ | && mkdir tpl_c \ | ||
+ | && php composer.phar install --no-interaction | ||
+ | </ | ||
+ | |||
+ | Enfin, on build l' | ||