[PYTHON] Générer une image Docker à l'aide de Fabric

Aperçu

Créons une image Docker à l'aide de Fabric. Étant donné que Fabric ne peut être utilisé que via SSH, il est nécessaire d'utiliser Docker via SSH.

Tout d'abord, définissez une fonction docker qui effectue le traitement suivant.

import atexit
import time
from fabric.api import *
from fabric.contrib.console import confirm


@task
def docker():
    env.hosts = ['127.0.0.1:2222']
    env.user = 'root'
    env.password = 'PASSWORD'

    import docker
    cl = docker.Client()
    container = cl.create_container('BASE_IMAGE_NAME',
                                    command='/usr/sbin/sshd -D',
                                    ports=[22])

    cl.start(container, port_bindings={22:2222})
    time.sleep(3)

    @atexit.register
    def commit():
        cl.stop(container)
        if confirm('Commit container changes?', default=True):
            cl.commit(container['Id'], repository='IMAGE_NAME', tag='TAG')

En écrivant ce qui suit dans fabfile.py,

$ fab docker TASK_NAME

Il sera possible d'exécuter comme.

De plus, si vous automatisez et exécutez docker push, etc. dans la fonction de validation ci-dessus, vous pouvez tout automatiser, de l'exécution de la tâche au téléchargement de l'index Docker.

De plus, docker-py est requis pour l'exécution.

Recommended Posts

Générer une image Docker à l'aide de Fabric
Essayez d'utiliser l'image Docker de Jupyter
Créer un environnement go à l'aide de Docker
Créer une instance GCE à partir d'une image Docker GCR à l'aide de terraform
Comment coder un drone en utilisant la reconnaissance d'image
Générez des valeurs de hachage à l'aide de la méthode HMAC.
Emballez le logiciel de traitement japonais dans une image Docker
[AWS Lambda] Créer un package de déploiement à l'aide de l'image Amazon Linux Docker
Résumé lors de l'utilisation de Fabric
Exposez votre image Docker
Générer une image verticale d'un roman à partir de données textuelles
Comment organiser un séminaire pratique à l'aide de Jupyter à l'aide de Docker
Segmentation d'image à l'aide de U-net
[Python] Masquez l'image dans un cercle à l'aide de Pillow
Transportez un conteneur Docker
Générer du texte d'image ensemble
Résumé de l'image Jupyter Docker
Créer un environnement de développement d'API rapide léger à l'aide de Docker
J'ai essayé d'utiliser PI Fu pour générer un modèle 3D d'une personne à partir d'une image
Essayez une recherche similaire de recherche d'images à l'aide du SDK Python [Recherche]
Comment générer une requête à l'aide de l'opérateur IN dans Django
Créez un environnement de développement Flask à faible coût avec Docker
Utilisez wxpython pour créer une fenêtre de type d'image d'arrière-plan transparent semblable à un gadget
Mesure du temps à l'aide d'une horloge
Générons aléatoirement une séquence complète
Prédiction d'images dans le cloud à l'aide de convLSTM
Tutoriel Pepper (5): Utilisation d'une tablette
Utiliser une imprimante avec Debian 10
Générer des diagrammes d'architecture OCI à l'aide de diagrammes
L'image est Namekuji
Un mémorandum d'utilisation de eigen3
Recherche par image de la pellicule en utilisant Pythonista3
Essayez de modifier une nouvelle image à l'aide du modèle StyleGAN2 entraîné
Créez un lot planifié simple à l'aide de l'image Python de Docker et de parse-crontab
Créer une image de conteneur Docker avec JRE8 / JDK8 sur Amazon Linux