Commit 0d1e5f30 authored by Florian Joriot's avatar Florian Joriot
Browse files

Mise à jour de la doc et du script de post create

parent 98cee282
Loading
Loading
Loading
Loading
+31 −59
Original line number Diff line number Diff line
@@ -26,50 +26,6 @@ cd ${APP_DIR}
git checkout 6.x
```

- Puis pour installer les dépendances PHP :

```bash
# si vous avez la joie d'être derrière un proxy :
#HTTP_PROXY=http://10.14.128.99:3128
#HTTPS_PROXY=${HTTP_PROXY}
#NO_PROXY=unicaen.fr,localhost

PHP_VERSION=7.3

docker run \
--rm \
-v $PWD:/app \
-w /app \
--env HTTP_PROXY \
--env HTTPS_PROXY \
--env NO_PROXY \
unicaen-dev-php${PHP_VERSION}-apache \
composer install
```

- Puis pour installer les fichiers de config exemples :

```bash
docker run \
--rm \
-v $PWD:/app \
-w /app \
--env HTTP_PROXY \
--env HTTPS_PROXY \
--env NO_PROXY \
unicaen-dev-php${PHP_VERSION}-apache \
composer run-script "post-create-project-cmd"
```

### Droits d'écriture

Comme les commandes lancées via Docker (comme ici, `composer`) sont exécutées en `root`, il faut reprendre la main 
sur les fichiers créés.

```bash
sudo chown -R ${USER}:${USER} .
```

### Création du dépôt git

```bash
@@ -86,30 +42,33 @@ namespace gitlab spécifié.*
## Construction et lancement du container Docker

Il faut penser à modifier les fichiers composer.json et docker-compose.yml pour mettre les informations relatives à l'application (le nom de l'application, le nom du container attendu etc...)
unicaen-dev-php8.0-apache est nécéssaire pour cette étape en 6.x
```bash
docker-compose up --build
```

- Il faut ensuite accèder au container et récupérer les bibliothèques  :

## Module Demo
```bash
docker exec -it nomDuContainer /bin/bash
composer install
chown -R ${USER}:${USER} .
composer run-script "post-create-project-cmd"
```

Le squelette d'application possède un module "démo" qui utilise une base de données PostgreSQL de démonstration 
permettant d'avoir une authentification locale qui fonctionne. 
- Comme les commandes lancées via Docker (comme ici, `composer`) sont exécutées en `root`, il faut reprendre la main
sur les fichiers créés.

Cette base de données est fournie par le service `db` (fichier de config `docker-compose.yml`).
Il y a également un service `adminer` fournissant de quoi explorer la base de données avec l'outil 
["Adminer"](https://www.adminer.org) en vous rendant à l'adresse `http://localhost:9080` (sélectionner "PostgeSQL"
et utiliser les informations de connexion à la bdd présentes dans le `docker-compose.yml`).
Pour explorer/administrer la base de données *de l'extérieur du container* (avec PHPStorm par exemple), 
l'adresse de la base est cette fois `localhost:8432`.
```bash
chown -R ${USER}:${USER} .
```

NB :
- Grâce au montage `./data/db:/var/lib/postgresql/data` spécifié dans `docker-compose.yml`, la base de données est 
  persistée dans le répertoire `data/db` de l'appli (d'ailleurs, ne pas oublier de faire un `sudo chmod -R 777 data/db`).
- Les scripts de création de la base de données exécutés au lancement du container (si la base n'existe pas déjà)
  se trouvent dans le répertoire `./docker/db` de l'appli et sont fournis au container grâce au montage 
  `./docker/db/:/docker-entrypoint-initdb.d/`. 
- Lancer le script qui va déplacer les .dist dans le dossier autoload et les script sql dans un dossier nommé SQL.
Les scripts SQL ne seront pas exécuter automatiquement.

```bash
composer run-script "post-create-project-cmd"
```

## Configuration du projet

@@ -164,7 +123,20 @@ cp -R ./vendor/unicaen/mail/SQL/002_privileges.sql ./SQL/003-unicaen-mail/003-da
./SQL/001-unicaen-utilisateur/001-data-unicaen-utilisateur.sql;
./SQL/003-unicaen-mail/003-data-unicaen-mail.sql;	
```

## Test de l'application 

Théoriquement, l'application devrait être accessible à l'adresse [https://localhost:8443](https://localhost:8443).
Le port utilisé dépend des redirections configurées dans le fichier [docker-compose.yml](docker-compose.yml).

## Module Demo

Le squelette d'application possède un module "démo" qui utilise une base de données PostgreSQL de démonstration
permettant d'avoir une authentification locale qui fonctionne.

Cette base de données est fournie par le service `db` (fichier de config `docker-compose.yml`).
Il y a également un service `adminer` fournissant de quoi explorer la base de données avec l'outil
["Adminer"](https://www.adminer.org) en vous rendant à l'adresse `http://localhost:9080` (sélectionner "PostgeSQL"
et utiliser les informations de connexion à la bdd présentes dans le `docker-compose.yml`).
Pour explorer/administrer la base de données *de l'extérieur du container* (avec PHPStorm par exemple),
l'adresse de la base est cette fois `localhost:8432`.
 No newline at end of file
+5 −4
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@
            "mkdir -p data/DoctrineORMModule/Proxy && chmod -R 777 data/DoctrineORMModule/Proxy && rm -rf data/DoctrineORMModule/Proxy/*"
        ],
        "post-create-project-cmd": [
            "chown -R ${USER}:${USER} .",
            "mkdir -p data/db && chmod -R 777 data/db",
            "cp -R ./vendor/unicaen/app/config/unicaen-app.global.php.dist ./config/autoload/unicaen-app.global.php",
            "cp -R ./vendor/unicaen/app/config/unicaen-app.local.php.dist ./config/autoload/unicaen-app.local.php",
            "cp -R ./vendor/unicaen/authentification/config/unicaen-authentification.global.php.dist ./config/autoload/unicaen-authentification.global.php",
@@ -42,16 +44,15 @@
            "cp -R ./vendor/unicaen/privilege/config/unicaen-privilege.global.php.dist ./config/autoload/unicaen-privilege.global.php",
            "cp -R ./vendor/unicaen/utilisateur/config/unicaen-utilisateur.global.php.dist ./config/autoload/unicaen-utilisateur.global.php",
            "cp -R ./config/autoload/local.php.dist ./config/autoload/local.php",

            "mkdir -p SQL",
            "mkdir -p ./SQL/001-unicaen-utilisateur",
            "cp -R ./vendor/unicaen/utilisateur/data/sql/schema_postgresql.sql ./SQL/001-unicaen-utilisateur/001-schema-unicaen-utilisateur.sql",
            "cp -R ./vendor/unicaen/utilisateur/data/sql/data.sql ./SQL/001-unicaen-utilisateur/001-data-unicaen-utilisateur.sql",
            "mkdir -p ./SQL/002-unicaen-privilege",
            "cp -R ./vendor/unicaen/privilege/data/sql/schema_postgresql.sql ./SQL/002-unicaen-privilege/002-schema-unicaen-privilege.sql",
            "mkdir -p ./SQL/003-unicaen-mail",
            "cp -R ./vendor/unicaen/mail/SQL/001_tables.sql ./SQL/003-unicaen-mail/003-schema-unicaen-mail.sql",
            "cp -R ./vendor/unicaen/mail/SQL/002_privileges.sql ./SQL/003-unicaen-mail/003-data-unicaen-mail.sql",

            "mkdir -p data/db && chmod -R 777 data/db"
            "cp -R ./vendor/unicaen/mail/SQL/002_privileges.sql ./SQL/003-unicaen-mail/003-data-unicaen-mail.sql"
        ]
    },
    "autoload": {