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
|
||||
|
||||
## 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
|
55
dk
55
dk
|
@ -12,7 +12,12 @@ COMMANDES
|
|||
build [SERVICE]
|
||||
Construire les images
|
||||
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]
|
||||
Démarrer le(s) service(s)
|
||||
stop [SERVICE]
|
||||
|
@ -51,15 +56,23 @@ COMMANDES
|
|||
OPTIONS générales
|
||||
(ces options sont communes à toutes les commandes)
|
||||
-d, --chdir PROJDIR
|
||||
Spécifier le répertoire du projet
|
||||
-p, --profile PROFILE
|
||||
-P, --prod
|
||||
-T, --test
|
||||
Spécifier le profil
|
||||
-m, --set-machine MACHINE
|
||||
Choisir l'environnement docker-machine spécifié avant de lancer les
|
||||
commandes
|
||||
-n, --fake
|
||||
-j, --no-cache
|
||||
Ne pas lancer les commandes, simplement les afficher
|
||||
-h, --host HOST
|
||||
Spécifier l'hôte pour la commande systemd-unit
|
||||
|
||||
OPTIONS build
|
||||
(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
|
||||
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:
|
||||
|
@ -441,22 +454,40 @@ function auto_build() {
|
|||
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() {
|
||||
local -a replace_env_args env_args
|
||||
local -a replace_build_args build_args
|
||||
local tag
|
||||
initialize_build_env
|
||||
if [ -f docker-compose.yml ]; then
|
||||
compose_set_env_args
|
||||
update_build_env
|
||||
compose_push "$@"
|
||||
else
|
||||
docker_parse_env_args
|
||||
docker_check_name
|
||||
update_build_env
|
||||
docker_push "$@"
|
||||
fi
|
||||
for tag in "${TAGS[@]}"; do
|
||||
${FAKE:+qvals} docker push "$NAME:$tag"
|
||||
done
|
||||
}
|
||||
|
||||
function default_compose_up() {
|
||||
|
@ -744,7 +775,9 @@ DM_PROFILES=()
|
|||
set_defaults dk
|
||||
export PROFILE
|
||||
|
||||
DM_AVAILABLE=
|
||||
if progexists docker-machine; then
|
||||
DM_AVAILABLE=1
|
||||
setx active_dm=docker-machine active 2>/dev/null
|
||||
for dm_profile in "${DM_PROFILES[@]}"; do
|
||||
splitpair "$dm_profile" dm profile
|
||||
|
@ -756,6 +789,7 @@ if progexists docker-machine; then
|
|||
fi
|
||||
|
||||
chdir=
|
||||
DM_SET_MACHINE=
|
||||
FAKE=
|
||||
NO_CACHE=
|
||||
HOST=
|
||||
|
@ -768,6 +802,7 @@ args=(
|
|||
-p:,--profile: PROFILE=
|
||||
-P,--prod PROFILE=prod
|
||||
-T,--test PROFILE=test
|
||||
-m:,--set-machine: DM_SET_MACHINE=
|
||||
-n,--fake FAKE=1
|
||||
-j,--no-cache NO_CACHE=1
|
||||
-h:,--host: HOST=
|
||||
|
@ -778,6 +813,12 @@ 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
|
||||
[ $# -eq 0 ] && set -- build
|
||||
[ -n "$PROFILE" ] || PROFILE="$DEFAULT_PROFILE"
|
||||
|
@ -799,7 +840,7 @@ while [ $# -gt 0 ]; do
|
|||
enote "Profil $PROFILE"
|
||||
auto_build "${args[@]}" || die
|
||||
;;
|
||||
push)
|
||||
p|push)
|
||||
[ -f .build.scripts.sh ] && source ./.build.scripts.sh
|
||||
[ -f build.scripts.sh ] && source ./build.scripts.sh
|
||||
args=()
|
||||
|
|
Loading…
Reference in New Issue