dk: support de push pour docker-compose
This commit is contained in:
parent
ccbfff4366
commit
d79e218dfc
14
TODO.md
14
TODO.md
|
@ -1,3 +1,17 @@
|
||||||
# TODO
|
# TODO
|
||||||
|
|
||||||
|
## dk
|
||||||
|
|
||||||
|
Ajouter le support du déploiement de services dans un swarm
|
||||||
|
|
||||||
|
Les nouvelles actions suivantes sont disponibles:
|
||||||
|
* deploy -- déployer un service
|
||||||
|
* bpd -- équivalent à build, push, deploy
|
||||||
|
* update -- mettre à jour un service déployé
|
||||||
|
* bpu -- équivalent à build, push, update
|
||||||
|
* rollback -- annuler la mise à jour d'un service
|
||||||
|
|
||||||
|
Pour toutes ces actions, utiliser par défaut docker-stack.yml s'il existe,
|
||||||
|
sinon utiliser docker-compose.yml (en tenant compte des paramètres des profils)
|
||||||
|
|
||||||
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
|
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
|
55
dk
55
dk
|
@ -12,7 +12,12 @@ COMMANDES
|
||||||
build [SERVICE]
|
build [SERVICE]
|
||||||
Construire les images
|
Construire les images
|
||||||
push
|
push
|
||||||
Pousser les images vers le serveur
|
push [SERVICES...]
|
||||||
|
La première syntaxe est utilisable avec un projet docker. Elle permet de
|
||||||
|
pousser l'image qui a été construite avec build vers le serveur
|
||||||
|
La deuxième syntaxe est utilisée avec un projet docker-compose. Elle
|
||||||
|
permet de pousser les images correspondant aux services qui ont été
|
||||||
|
construit vers le serveur.
|
||||||
start, run [SERVICE]
|
start, run [SERVICE]
|
||||||
Démarrer le(s) service(s)
|
Démarrer le(s) service(s)
|
||||||
stop [SERVICE]
|
stop [SERVICE]
|
||||||
|
@ -51,15 +56,23 @@ COMMANDES
|
||||||
OPTIONS générales
|
OPTIONS générales
|
||||||
(ces options sont communes à toutes les commandes)
|
(ces options sont communes à toutes les commandes)
|
||||||
-d, --chdir PROJDIR
|
-d, --chdir PROJDIR
|
||||||
|
Spécifier le répertoire du projet
|
||||||
-p, --profile PROFILE
|
-p, --profile PROFILE
|
||||||
-P, --prod
|
-P, --prod
|
||||||
-T, --test
|
-T, --test
|
||||||
|
Spécifier le profil
|
||||||
|
-m, --set-machine MACHINE
|
||||||
|
Choisir l'environnement docker-machine spécifié avant de lancer les
|
||||||
|
commandes
|
||||||
-n, --fake
|
-n, --fake
|
||||||
-j, --no-cache
|
Ne pas lancer les commandes, simplement les afficher
|
||||||
-h, --host HOST
|
-h, --host HOST
|
||||||
|
Spécifier l'hôte pour la commande systemd-unit
|
||||||
|
|
||||||
OPTIONS build
|
OPTIONS build
|
||||||
(ces options ne sont valides que pour les commandes build, brd, bs)
|
(ces options ne sont valides que pour les commandes build, brd, bs)
|
||||||
|
-j, --no-cache
|
||||||
|
Ne pas utiliser le cache lors du build
|
||||||
-g, --ug, --no-update-apps
|
-g, --ug, --no-update-apps
|
||||||
ne pas mettre à jour les dépôts dépendants. ces dépôts sont définis dans
|
ne pas mettre à jour les dépôts dépendants. ces dépôts sont définis dans
|
||||||
le fichier update-apps.conf qui a le format suivant:
|
le fichier update-apps.conf qui a le format suivant:
|
||||||
|
@ -441,22 +454,40 @@ function auto_build() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function default_compose_push() {
|
||||||
|
${FAKE:+qvals} docker-compose \
|
||||||
|
"${replace_env_args[@]}" "${env_args[@]}" \
|
||||||
|
push \
|
||||||
|
"$@"
|
||||||
|
}
|
||||||
|
function default_docker_push() {
|
||||||
|
${FAKE:+qvals} docker push \
|
||||||
|
"${replace_env_args[@]}" "${env_args[@]}" \
|
||||||
|
"$@"
|
||||||
|
}
|
||||||
|
function compose_push() {
|
||||||
|
default_compose_push "$@"
|
||||||
|
}
|
||||||
|
function docker_push() {
|
||||||
|
local tag
|
||||||
|
for tag in "${TAGS[@]}"; do
|
||||||
|
default_docker_push "$NAME:$tag" "$@"
|
||||||
|
done
|
||||||
|
}
|
||||||
function auto_push() {
|
function auto_push() {
|
||||||
local -a replace_env_args env_args
|
local -a replace_env_args env_args
|
||||||
local -a replace_build_args build_args
|
local -a replace_build_args build_args
|
||||||
local tag
|
|
||||||
initialize_build_env
|
initialize_build_env
|
||||||
if [ -f docker-compose.yml ]; then
|
if [ -f docker-compose.yml ]; then
|
||||||
compose_set_env_args
|
compose_set_env_args
|
||||||
update_build_env
|
update_build_env
|
||||||
|
compose_push "$@"
|
||||||
else
|
else
|
||||||
docker_parse_env_args
|
docker_parse_env_args
|
||||||
docker_check_name
|
docker_check_name
|
||||||
update_build_env
|
update_build_env
|
||||||
|
docker_push "$@"
|
||||||
fi
|
fi
|
||||||
for tag in "${TAGS[@]}"; do
|
|
||||||
${FAKE:+qvals} docker push "$NAME:$tag"
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function default_compose_up() {
|
function default_compose_up() {
|
||||||
|
@ -744,7 +775,9 @@ DM_PROFILES=()
|
||||||
set_defaults dk
|
set_defaults dk
|
||||||
export PROFILE
|
export PROFILE
|
||||||
|
|
||||||
|
DM_AVAILABLE=
|
||||||
if progexists docker-machine; then
|
if progexists docker-machine; then
|
||||||
|
DM_AVAILABLE=1
|
||||||
setx active_dm=docker-machine active 2>/dev/null
|
setx active_dm=docker-machine active 2>/dev/null
|
||||||
for dm_profile in "${DM_PROFILES[@]}"; do
|
for dm_profile in "${DM_PROFILES[@]}"; do
|
||||||
splitpair "$dm_profile" dm profile
|
splitpair "$dm_profile" dm profile
|
||||||
|
@ -756,6 +789,7 @@ if progexists docker-machine; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
chdir=
|
chdir=
|
||||||
|
DM_SET_MACHINE=
|
||||||
FAKE=
|
FAKE=
|
||||||
NO_CACHE=
|
NO_CACHE=
|
||||||
HOST=
|
HOST=
|
||||||
|
@ -768,6 +802,7 @@ args=(
|
||||||
-p:,--profile: PROFILE=
|
-p:,--profile: PROFILE=
|
||||||
-P,--prod PROFILE=prod
|
-P,--prod PROFILE=prod
|
||||||
-T,--test PROFILE=test
|
-T,--test PROFILE=test
|
||||||
|
-m:,--set-machine: DM_SET_MACHINE=
|
||||||
-n,--fake FAKE=1
|
-n,--fake FAKE=1
|
||||||
-j,--no-cache NO_CACHE=1
|
-j,--no-cache NO_CACHE=1
|
||||||
-h:,--host: HOST=
|
-h:,--host: HOST=
|
||||||
|
@ -778,6 +813,12 @@ args=(
|
||||||
)
|
)
|
||||||
parse_args "$@"; set -- "${args[@]}"
|
parse_args "$@"; set -- "${args[@]}"
|
||||||
|
|
||||||
|
if [ -n "$DM_SET_MACHINE" ]; then
|
||||||
|
[ -n "$DM_AVAILABLE" ] || die "docker-machine n'est pas disponible"
|
||||||
|
setx dm_env=docker-machine env "$DM_SET_MACHINE" || die
|
||||||
|
eval "$dm_env"
|
||||||
|
fi
|
||||||
|
|
||||||
# construire par défaut
|
# construire par défaut
|
||||||
[ $# -eq 0 ] && set -- build
|
[ $# -eq 0 ] && set -- build
|
||||||
[ -n "$PROFILE" ] || PROFILE="$DEFAULT_PROFILE"
|
[ -n "$PROFILE" ] || PROFILE="$DEFAULT_PROFILE"
|
||||||
|
@ -799,7 +840,7 @@ while [ $# -gt 0 ]; do
|
||||||
enote "Profil $PROFILE"
|
enote "Profil $PROFILE"
|
||||||
auto_build "${args[@]}" || die
|
auto_build "${args[@]}" || die
|
||||||
;;
|
;;
|
||||||
push)
|
p|push)
|
||||||
[ -f .build.scripts.sh ] && source ./.build.scripts.sh
|
[ -f .build.scripts.sh ] && source ./.build.scripts.sh
|
||||||
[ -f build.scripts.sh ] && source ./build.scripts.sh
|
[ -f build.scripts.sh ] && source ./build.scripts.sh
|
||||||
args=()
|
args=()
|
||||||
|
|
Loading…
Reference in New Issue