Test de drupal8-docker-app

https://github.com/ricardoamaro/drupal8-docker-app#quick-3-step-instruct...

Docker est installé (au 1er run, les images seront dl) :

docker run -i -t -p 80:80 ricardoamaro/drupal8

On voit des erreurs (voir l'extrat de code ci-dessous) puis un un drush status (v 8.1.16 en mai 2018), c'est normal et il faut attendre (au doux son de son disque dur, plusieurs longues minutes)...

/var/www/html/web/sites/default/settings.php: No such file or directory
Failed to create database: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 
Command pm-enable needs a higher bootstrap level to run - you will need to invoke drush from a more functional Drupal environment to run this command.                                        [error]
The drush command 'en memcache' could not be executed.                                                                                                                                        [error]
Drush was not able to start (bootstrap) the Drupal database. ...                                                                                  

Puis est indiqué qu'il faut naviguer IP, se loguer en admin/admin (montre le ssh avec tous les users/pw, mais la plus part sont ko, drupal n'est pas installé, la db est vide) :

DRUPAL:  http://172.17.0.2              with user/pass: admin/admin

MYSQL :  http://172.17.0.2/adminer.php  drupal/pw or root/pw
SSH   :  ssh root@172.17.0.2            with user/pass: root/pw

Un coup d'oeil sur la conf générée

Avec un ssh, on voit que le composer.json est en /var/www/html/web/, et qu'il faut faire :

On a drush 8.1.16 et composer 1.6.5 /.composer/vendor/drush/drush

Coté apache, un site configuré (/sites-available/000-default.conf)  avec  :

<VirtualHost *:80>
  ServerName drupal8.local
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/html/web
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<Directory /var/www/html>
  AllowOverride All
</Directory>

Limite PHP (Version 7.2.5) à 128M, il n'y a pas PECL.

$ docker container ls
CONTAINER ID        IMAGE                  COMMAND                 CREATED             STATUS              PORTS                                            NAMES
47b89cb5a3bc        ricardoamaro/drupal8   "/bin/bash /start.sh"   2 hours ago         Up 2 hours          22/tcp, 3306/tcp, 9000/tcp, 0.0.0.0:80->80/tcp   ecstatic_fermat

$ docker container inspect 47b89cb5a3bc
[
    {
        "Id": "47b89cb5a3bc8e767fb8b53c5ae08e7291c30979d7aa1ccf58193556578a906b",
        "Created": "2018-05-20T16:03:24.352792342Z",
        "Path": "/bin/bash",
        "Args": [
            "/start.sh"
        ],
        "State": {
            "Status": "running",
            "Running": true,
...
        "ResolvConfPath": "/var/lib/docker/containers/47b89cb5a3bc....3556578a906b/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/47b89cb5a3bc...3556578a906b/hostname", ...

à la fin, mac adresses et IP.

 

Persistence (code drupal 8 et db)

Le code de Drupal8 sera dans le dossier local/web et MySQL dans local/data  :

git clone https://github.com/ricardoamaro/drupal8-docker-app.git
cd drupal8-docker-app
./drupal8_local.sh

Je lis "Utilisation pour dev en local" : Nouvelle install ou réinstaller un code existant :

  1. Effacer le dossier  local/data/ ??? (on voit cette ref dans le drupal8_local.sh mais à part ca.. crying).
  2. Créer un dossier local/web/ à la racine docroot de Drupal 8
    ie. composer create-project drupal-composer/drupal-project:8.x-dev local --no-interaction
  3. Effacer le fichier sites/default/settings.php
  4. sh drupal8_local.sh

Montré dans la sortie :

    Drupal account-name=admin & account-pass=admin
    ROOT SSH/MYSQL PASSWORD dans $mysql/mysql-root-pw.txt, et DRUPAL MYSQL_PASSWORD dans $mysql/drupal-db-pw.txt

Arreter (CTRL+C) et relancer (dans le meme dossier sh drupal8_local.sh et naviguer vers les URL affichées)

?

Je tente le drupal8-docker-app/drupal8_local.sh comme indiqué ... et le drupal est bien installé et fonctionnel (sur une autre ip, avec un autre titre), le compte admin étant bien admin/admin...
Le drupal8_local.sh a créé les dossiers ( drupal8-docker-app/local/data/mysql a drupal-db-pw.txt et mysql-root-pw.txt) et on a accès facile aux fichiers du site via drupal8-docker-app/local/web/sites/default/files


$ docker images
REPOSITORY                  TAG                        SIZE
ricardoamaro/drupal8   latest                  1.01GB
jennc/get-started           part2                   151MB
ubuntu                           latest                  79.6MB

 

post install

Rapport drupal 8 : il manque PECL uploadprogress library et Trusted Host Settings (ca se comprend, vu que hostname retourne l'ID du contener). Plus génant pour un dev : settings.local.php n'est pas créé.

Les +

De son poste (hote), on a accès aux fichiers du site, ils sont à www-data:moi - plutot pratique :)

Les - (changer ses habitudes)

  • On se logue en root, et /home est vide... Tout est en /root => Composer râle (n'aime pas etre lancé en root, normal...).
  • pas de systemd

 

vers gestion des users

    le drupal8_local.sh créee les dossiers (local/data/mysql et local/web) sur son pc