[TUTORIEL] - Gladys clés en main

docker
tutoriel

#1

TUTORIEL - Gladys clés en main avec Docker

Bonjour à tous,

Pour ceux qui ne seraient pas encore équipés de Raspberry Pi ou qui souhaiteraient tester Gladys avant de se lancer dans la grande aventure, voici un petit tutoriel qui vous permettra de lancer une instance de Gladys prête à l’emploi sur votre ordinateur.

Pré-requis :

Installer Docker pour Windows

1- Double-cliquez sur InstallDocker.msi pour exécuter le programme d’installation.

Si vous n’avez pas déjà téléchargé le programme d’installation (InstallDocker.msi), vous pouvez l’obtenir ici.

2- Suivez l’assistant d’installation, acceptez la licence et procéder à l’installation.

Vous devrez autoriser Docker.exe avec votre mot de passe lors du processus d’installation. Un accès privilégié est nécessaire pour installer des composants réseaux, des liens vers les applications Docker et gérer les machines virtuelles Hyper-V.

3- Cliquez sur Terminer dans la boîte de dialogue de configuration complète pour lancer Docker.

Docker installation finished

Bravo ! Vous êtes opérationnel pour utiliser Docker sous Windows.


Installer Docker pour Mac

1- Double-cliquez sur Docker.dmg pour ouvrir le programme d’installation, puis faites glisser Moby la baleine dans le dossier Applications.

Si vous n’avez pas déjà téléchargé le programme d’installation (Docker.dmg), vous pouvez l’obtenir ici.

2- Double-cliquez sur Docker.app dans le dossier Applications pour démarrer Docker. (Dans l’exemple ci-dessous, le dossier Applications est en mode de visualisation “grille”).

3- Vous devrez autoriser Docker.app avec votre mot de passe après le lancement. Un accès privilégié est nécessaire pour installer des composants réseaux et des liens vers les applications Docker.

La baleine dans la barre d’état supérieure indique que Docker est en cours d’exécution et accessible depuis un terminal.

Baleine dans la barre de menu

Bravo ! Vous êtes opérationnel pour utiliser Docker sous Mac.


Autres systèmes :

D’autres systèmes d’exploitation sont pris en charge par Docker, pour obtenir plus d’information concernant l’installation rendez-vous sur cette page


Utilisation du fichier docker-compose.yml

Après avoir téléchargé le fichier docker-compose.yml, placez le dans un dossier que vous saurez retrouver, chez moi par exemple : G:$-Domotics-Project\Gladys\docker-compose.yml

Un fois Docker démarré, lancez votre outil de ligne de commande préféré, CMD sous Windows / Terminal sous Mac, placez-vous dans le répertoire où se trouve le fichier .yml.

Pour moi : cd G:\$-Domotics-Project\Gladys\

cmd

Et exécutez la commande : docker-compose up -d

Docker va alors récupérer le container mysql et le container Gladys, les lier pour que Gladys est accès à la base de données et démarrer l’ensemble !

Lancement de Gladys

Vous pouvez alors ouvrir votre navigateur et taper : locahost:8080
Il ne vous reste qu’à créer votre compte et parcourir votre nouvel assistant : Gladys !

[EDIT] : Pour certains utilisateurs, notamment sous Windows 7, l’accès à localhost pourrait vous renvoyer l’erreur suivante : “Ce site est inaccessible - localhost n’autorise pas la connexion”

Dans ce cas remplacez localhost par l’adresse IP affichée après DOCKER_HOST= en tapant docker-machine env dans un cmd.


Probleme installation docker sous windows 10
Installation sur mac (je suis perdu...)
Gladys avec seulement Rpi3 sans accessoires domotique
[RESOLU] Début dans la configuration de Gladys
(debutant) info equipement
Des conseils pour une installation domotique complète?
Question pour projet futur
[RÉFÉRENTIEL] - Les tutoriels
[RESOLU] Voicerss Mac / Lame undefined
Probleme installation docker sous windows 10
#2

Bonjour,
J’ai suivi le tuto tout passe sauf la dernière étape, j’ai une erreur “permission denied” :

Starting gladys-node …
Starting gladys-node … error

ERROR: for gladys-node Cannot start service gladys: driver failed programming external connectivity on endpoint gladys-node (fd123bb28a0ad3b4662e626eedd65cc7e41018fd496a131879659421303669ff): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error Permission denied

ERROR: for gladys Cannot start service gladys: driver failed programming external connectivity on endpoint gladys-node (fd123bb28a0ad3b4662e626eedd65cc7e41018fd496a131879659421303669ff): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error Permission denied
ERROR: Encountered errors while bringing up the project.

J’ai testé sur deux réseaux différents pensant à une erreur de proxy ou autre mais même en wifi sans restriction ça ne passe pas.
Pouvez-vous m’aider ?
Cordialement,
Ludovic.


#3

Salut @Ludo,

Ton port 80 semble déjà pris, modifie le fichier .yml
Change la ligne :

ports:
- 80:8080

par

ports:
- 8080:8080

Et relance la commande docker-compose up -d


#4

Oui c’est bon merci :slight_smile:

Merci pour ta réponse rapide.
Maintenant Localhost reste page blanche, quelque soit le navigateur, voire Erreur 404…


#5

Normal, avec la modification que je t’ai fais faire, ça a rediriger gladys sur le port 8080 de ton pc

tape : http://localhost:8080


#6

Ok merci, malheureusement maintenant c’est Time Out :

Erreur réseau

Une erreur de communication s’est produite :

“Operation timed out”.

Le serveur est peut-être arrêté ou occupé, ou il rencontre d’autres problèmes qui l’empêchent de répondre aux requêtes. Vous pouvez réessayer ultérieurement.


#7

Bon, on va vérifier que les deux containers ont démarrés correctement :slight_smile:

Installe Docker Toolbox si ce n’est pas déjà le cas et lance Kitematic :

https://download.docker.com/win/stable/DockerToolbox.exe

ça va t’ouvrir une fenêtre, une interface graphique pour Docker :

La tu vas pouvoir cliquer sur le container gladys-node est nous faire un screen de ce que tu as


#8

Et voilà :

Unhandled rejection Error: ER_NO_SUCH_TABLE: Table ‘gladys.user’ doesn’t exist
at Query.Sequence._packetToError (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:48:14)
at Query.ErrorPacket (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Query.js:83:18)
at Protocol._parsePacket (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:280:23)
at Parser.write (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Parser.js:73:12)
at Protocol.write (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:39:16)
at Socket. (/src/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js:96:28)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:153:18)
at Socket.Readable.push (_stream_readable.js:111:10)
at TCP.onread (net.js:540:20)
--------------------
at Protocol._enqueue (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:141:48)
at PoolConnection.query (/src/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js:201:25)
at QUERY (/src/node_modules/sails-mysql/lib/adapter.js:110:22)
at afterwards (/src/node_modules/sails-mysql/lib/connections/spawn.js:84:5)
at /src/node_modules/sails-mysql/lib/connections/spawn.js:40:7
at Ping.onOperationComplete [as _callback] (/src/node_modules/sails-mysql/node_modules/mysql/lib/Pool.js:99:5)
at Ping.Sequence.end (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
at Ping.Sequence.OkPacket (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:105:8)
at Protocol._parsePacket (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:280:23)
at Parser.write (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Parser.js:73:12)
at Protocol.write (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:39:16)
at Socket. (/src/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js:96:28)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:153:18)
at Socket.Readable.push (_stream_readable.js:111:10)
at TCP.onread (net.js:540:20)


#9

Alors !

Retélécharge mon fichier docker-compose.yml : https://drive.google.com/open?id=0B3hEU3lqitPNOUFscjdkZ2xvQVk

Vas dans Kitematic ==> en haut à gauche tu clic sur “New”
Ensuite à droite sur “My images”
Tu ferme gladys-node et gladys-mysql avec la croix
Ensuite tu cliques sur les pointillés des containers et tu clic sur “Delete tag”

Une fois que tout ça c’est fait, tu ouvre un cmd.exe et tu relance le docker-compose up -d avec le nouveau fichier .yml à la place de l’ancien.


#10

J’ai eu la même chose mais je ne suis pas parvenu à supprimer les tags, il ne se passait rien quand je cliquais sur delete tag…


#11

Il faut bien que tu aies arrêté les containers à gauche et il faut attendre un peu pour qu’ils disparaissent, sinon il ne sont pas retéléchargés.

Au pire ferme et réouvre Kitematic pour être sur !


#12

Il n’y a plus rien à gauche mais les tags restent bien que je clique sur delete tag

En redémarrant le gladys.node :

{ [Error: ER_NO_SUCH_TABLE: Table ‘gladys.house’ doesn’t exist]
cause:
{ [Error: ER_NO_SUCH_TABLE: Table ‘gladys.house’ doesn’t exist]
code: ‘ER_NO_SUCH_TABLE’,
errno: 1146,
sqlState: ‘42S02’,
index: 0,
originalError: [Circular] },
isOperational: true,
code: ‘ER_NO_SUCH_TABLE’,
errno: 1146,
sqlState: ‘42S02’,
index: 0,
originalError:
{ [Error: ER_NO_SUCH_TABLE: Table ‘gladys.house’ doesn’t exist]
code: ‘ER_NO_SUCH_TABLE’,
errno: 1146,
sqlState: ‘42S02’,
index: 0,
originalError: [Circular] } }
Gladys is up to date !
Unhandled rejection Error: ER_NO_SUCH_TABLE: Table ‘gladys.user’ doesn’t exist
at Query.Sequence._packetToError (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:48:14)
at Query.ErrorPacket (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Query.js:83:18)
at Protocol._parsePacket (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:280:23)
at Parser.write (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Parser.js:73:12)
at Protocol.write (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:39:16)
at Socket. (/src/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js:96:28)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:153:18)
at Socket.Readable.push (_stream_readable.js:111:10)
at TCP.onread (net.js:540:20)
--------------------
at Protocol._enqueue (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:141:48)
at PoolConnection.query (/src/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js:201:25)
at QUERY (/src/node_modules/sails-mysql/lib/adapter.js:110:22)
at afterwards (/src/node_modules/sails-mysql/lib/connections/spawn.js:84:5)
at /src/node_modules/sails-mysql/lib/connections/spawn.js:40:7
at Ping.onOperationComplete [as _callback] (/src/node_modules/sails-mysql/node_modules/mysql/lib/Pool.js:99:5)
at Ping.Sequence.end (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
at Ping.Sequence.OkPacket (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:105:8)
at Protocol._parsePacket (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:280:23)
at Parser.write (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Parser.js:73:12)
at Protocol.write (/src/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:39:16)
at Socket. (/src/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js:96:28)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:153:18)
at Socket.Readable.push (_stream_readable.js:111:10)
at TCP.onread (net.js:540:20)


#13

Tiens essaye ça, il est possible que ça vienne de là


#14

Bon @Ludo j’ai réussi à reproduire ton erreur, c’est effectivement la solution précédente qui est la bonne :

Tu ouvre Kitematic, tu clic sur “gladys-node” puis sur “exec” et tu tape node init.js
Si “Init with sucess” apparait clic sur le “restart” du gladys node

Une fois que tu vois la ligne gladys is up to date !
Clique sur l’aperçu web en haut à droite, ça va t’ouvrir http://localhost:8080


#15

Si après ça tu n’arrive pas à accéder a gladys, fait ça :


#16

Bon !

J’ai tout refait !
J’ai désinstallé/réinstallé mon Docker, je l’ai complètement réinitialisé grace à la fonction “Reset to factory defaults…” dispo via clic droit sur l’icone de Docker ==> Settings ==> Reset

J’ai pu reproduire l’erreur et identifier la cause !

J’ai donc mis à jour mon fichier docker-compose.yml j’invite donc tout ceux qui ont eu des soucis avec le tuto à le télécharger à nouveau ici !

Sous Windows 7 (merci à @WolfVic) : il semblerai qu’il ne faille pas suivre http://localhost:8080 mais http://192.168.99.100:8080

@Grannix @Ludo ==> je vous laisse tester ?

Je vais éditer le tuto pour les suivants.


#17

Sur toutes les versions qui ne sont compatibles qu’avec le docker toolbox il faut suivre 192.168.99.100 . Car docker CE c’est compatible qu’avec W10 pro.


#18

Super, ça a marché.
L’accès est ok.

Merci beaucoup pour ton aide.

Ludo


#19

Je test ça ajd ou demain dès que j’ai le temps ! :slight_smile:


#20

@WolfVic, comment fais-tu lorsque tu as besoin de passer par un HTTPS ?
Par exemple, mon forecast ne marche pas, d’après un post sur le forum il faudrait que je passe par https://192.168.99.100/ sauf que ca me dit que le site est inaccessible et n’autorise pas la connexion.
As-tu déjà eu ce problème ?