pyLoad avec Docker

Cela fait quelques temps déjà que je lis à droite et à gauche des articles sur Docker. Je trouve que c’est un outil très intéressant afin de tester des applications sans polluer sa machine.

Je me suis donc lancé sur un container plutôt simple. Ce dernier se contente de lancer pyLoad et un serveur ssh. Tout cela orchestré par Supervisor.

Pour mon container j’utilise une image Debian, sur laquelle je commence par installer:

RUN apt-get install -y python-crypto python-pycurl tesseract-ocr git openssh-server supervisor

J’ai décidé d’installer pyLoad depuis les sources disponibles sur Github.

RUN git clone https://github.com/pyload/pyload.git /opt/pyload

Ensuite j’ajoute :

  • le dossier de configuration de pyLoad, qui contient entre autres le fichier pyload.conf qui définit la configuration globale.

ADD pyload /opt/.pyload

  • le fichier de configuration de Supervisor: qui lance le server ssh et pyLoad en mode démon

ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf

Enfin :

  • Je crée un volume qui permettra à d’autres containers d’avoir accès aux fichiers téléchargés.

VOLUME ["/opt/downloads"]

  • J’expose les ports:
    • 8000: pour l’interface web de pyLoad
    • 7227: pour la remote
    • 22: pour les connexions ssh

 EXPOSE 22 8000 7227

  • La commande pour démarrer le service Supervisor:

CMD ["/usr/bin/supervisord","-c","/etc/supervisor/conf.d/supervisord.conf"]

 

Pour lancer le container, il suffit de lancer la commande suivante:

 docker run -d -P jahroots/docker-pyload

On peut ensuite vérifier que le container a été lancé avec: docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ba228da04ad jahroots/docker-pyload:latest /usr/bin/supervisord 4 seconds ago Up 3 seconds 0.0.0.0:49165->22/tcp, 0.0.0.0:49166->7227/tcp, 0.0.0.0:49167->8000/tcp

On peut voir qu’on a une instance de l’image jahroots/docker-pyload:latest qui est lancée, et qu’on peut accéder à l’interface web de pyLoad à http://locahost:49167

 

Les sources sont disponibles sur mon Github.

Update: J’ai réalisé une mise à jour du conteneur afin de réduire un peu sur la taille de l’image. Il est désormais possible de se connecter en ssh[user:root,password:root].

 ssh -p 49165 root@[dockerIp]