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.
docker
) à exécuter avant de démarrer la tâche et exécutez sshd dans le conteneur Docker.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