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 :
- un chmod 777 /var/www/html/web/sites/default/settings.php
- créer une base et un user (avec les privilères requis) pour installer dupal: http://172.17.0.2/adminer.php?username=root
- lancer l'install de drupal 8 (attendre)
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 :
-
Effacer le dossier
local/data/
??? (on voit cette ref dans le drupal8_local.sh mais à part ca.. ). -
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
-
Effacer le fichier
sites/default/settings.php
-
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