implémenter service, update, scale
This commit is contained in:
parent
c2f43e6b6d
commit
386fc0d070
125
dk
125
dk
|
@ -41,18 +41,32 @@ COMMANDES
|
||||||
Construire les images (comme avec build) puis démarrer les services
|
Construire les images (comme avec build) puis démarrer les services
|
||||||
(comme avec start)
|
(comme avec start)
|
||||||
Equivalent à -- build -- start [args]
|
Equivalent à -- build -- start [args]
|
||||||
y|deploy
|
y|deploy [args...]
|
||||||
(Re)déployer un service. Cette commande ne fonctionne qu'en mode swarm
|
(Re)déployer un stack. Cette commande ne fonctionne qu'en mode swarm.
|
||||||
avec docker-compose. Implique --stack
|
Implique --stack
|
||||||
S'il existe un fichier docker-stack.yml, il est utilisé de préférence à
|
by|bd [args...]
|
||||||
la place de docker-compose.yml. De même, les fichiers de profil de la
|
Equivalent à --stack -- build -- deploy args...
|
||||||
forme docker-stack.PROFILE.yml sont utilisés de préférence à
|
|
||||||
docker-compose.PROFILE.yml
|
|
||||||
by|bd
|
|
||||||
Equivalent à --stack -- build -- deploy [args]
|
|
||||||
Utilisable notamment en développement
|
Utilisable notamment en développement
|
||||||
bpy|bpd
|
bp [args...]
|
||||||
Equivalent à --stack -- build -- push -- deploy [args]
|
Equivalent à --stack -- build -- push args...
|
||||||
|
bpy|bpd [args...]
|
||||||
|
Equivalent à --stack -- build -- push -- deploy args...
|
||||||
|
service COMMAND SERVICE [args...]
|
||||||
|
Frontend pour 'docker service COMMAND args... SERVICE'
|
||||||
|
Cette commande ne fonctionne qu'en mode swarm. Il n'est pas nécessaire
|
||||||
|
de préfixer le nom du service avec le nom du stack, pour être cohérent
|
||||||
|
avec les autres commandes
|
||||||
|
IMPORTANT: notez que les arguments sont placés avant le nom du service.
|
||||||
|
Celà signifie qu'on ne peut spécifier que des options à la commande.
|
||||||
|
Penser aussi à protéger ces options de l'analyse eg.
|
||||||
|
$scriptname -- service logs web -f
|
||||||
|
Pour des cas d'utilisation plus complexe, il faut lancer directement
|
||||||
|
docker service
|
||||||
|
u|update SERVICE [args...]
|
||||||
|
Mettre à jour un service, équivalent à 'service update SERVICE'
|
||||||
|
scale SERVICE=REPLICAS [args...]
|
||||||
|
Mettre à jour le nom de réplicas d'un service, équivalent à la commande
|
||||||
|
'service scale SERVICE=REPLICAS'
|
||||||
ip|show-ip [SERVICE]
|
ip|show-ip [SERVICE]
|
||||||
Afficher l'adresse IP interne du service
|
Afficher l'adresse IP interne du service
|
||||||
x|exec SERVICE COMMAND
|
x|exec SERVICE COMMAND
|
||||||
|
@ -89,10 +103,12 @@ OPTIONS build
|
||||||
(ces options ne sont valides que pour les commandes build, brd, bs, bd, bpd)
|
(ces options ne sont valides que pour les commandes build, brd, bs, bd, bpd)
|
||||||
--stack
|
--stack
|
||||||
Indiquer que le build est fait pour un déploiement avec deploy.
|
Indiquer que le build est fait pour un déploiement avec deploy.
|
||||||
Les fichiers de la forme docker-stack[.PROFILE].yml s'ils existent sont
|
S'il existe un fichier docker-stack.yml, il est utilisé de préférence à
|
||||||
utilisés de préférence à docker-compose[.PROFILE].yml
|
la place de docker-compose.yml. De même, les fichiers de profil de la
|
||||||
Cette option n'est nécessaire que si on fait uniquement le build puisque
|
forme docker-stack.PROFILE.yml sont utilisés de préférence aux fichiers
|
||||||
les commandes deploy, bd, et bpd impliquent --stack
|
docker-compose.PROFILE.yml
|
||||||
|
Cette option n'est nécessaire qu'avec build puisque les commandes
|
||||||
|
deploy, bd, bpd et update impliquent --stack
|
||||||
-j, --no-cache
|
-j, --no-cache
|
||||||
Ne pas utiliser le cache lors du build
|
Ne pas utiliser le cache lors du build
|
||||||
-g, --ug, --no-update-apps
|
-g, --ug, --no-update-apps
|
||||||
|
@ -236,7 +252,7 @@ function compose_set_env_args() {
|
||||||
|
|
||||||
compose_set_project_name "$@"
|
compose_set_project_name "$@"
|
||||||
}
|
}
|
||||||
function compose_set_deploy_args() {
|
function docker_set_deploy_args() {
|
||||||
if [ -n "$USE_STACK" -a -f docker-stack.yml ]; then
|
if [ -n "$USE_STACK" -a -f docker-stack.yml ]; then
|
||||||
replace_deploy_args+=(-c docker-stack.yml)
|
replace_deploy_args+=(-c docker-stack.yml)
|
||||||
else
|
else
|
||||||
|
@ -671,21 +687,55 @@ function auto_down() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function default_compose_deploy() {
|
function default_docker_deploy() {
|
||||||
${FAKE:+qvals} docker \
|
${FAKE:+qvals} docker \
|
||||||
stack deploy \
|
stack deploy \
|
||||||
"${replace_deploy_args[@]}" "${deploy_args[@]}" \
|
"${replace_deploy_args[@]}" "${deploy_args[@]}" \
|
||||||
"$container_name" "$@"
|
"$container_name" "$@"
|
||||||
}
|
}
|
||||||
function compose_deploy() { default_compose_deploy "$@"; }
|
function docker_deploy() { default_docker_deploy "$@"; }
|
||||||
function auto_deploy() {
|
function auto_deploy() {
|
||||||
local -a replace_env_args env_args
|
local -a replace_env_args env_args
|
||||||
local -a replace_deploy_args deploy_args
|
local -a replace_deploy_args deploy_args
|
||||||
local project_name container_name
|
local project_name container_name
|
||||||
if [ -f docker-compose.yml -o -f docker-stack.yml ]; then
|
if [ -f docker-compose.yml -o -f docker-stack.yml ]; then
|
||||||
compose_set_deploy_args set_container_name
|
docker_set_deploy_args set_container_name
|
||||||
[ -n "$WITH_REGISTRY_AUTH" ] && replace_deploy_args+=(--with-registry-auth)
|
[ -n "$WITH_REGISTRY_AUTH" ] && replace_deploy_args+=(--with-registry-auth)
|
||||||
compose_deploy "$@"
|
docker_deploy "$@"
|
||||||
|
else
|
||||||
|
die "Impossible de trouver ni docker-compose.yml ni docker-stack.yml"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function default_docker_service() {
|
||||||
|
${FAKE:+qvals} docker service "$@"
|
||||||
|
}
|
||||||
|
function docker_service() { default_docker_service "$@"; }
|
||||||
|
function auto_service() {
|
||||||
|
local -a replace_env_args env_args
|
||||||
|
local -a replace_deploy_args deploy_args
|
||||||
|
local project_name container_name
|
||||||
|
if [ -f docker-compose.yml -o -f docker-stack.yml ]; then
|
||||||
|
local command="$1"; shift
|
||||||
|
[ -n "$command" ] || {
|
||||||
|
eerror "Vous devez spécifier la commande"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
case "$command" in
|
||||||
|
ls) # ces commandes n'ont pas besoin du nom de service
|
||||||
|
docker_service "$command" "$@"
|
||||||
|
;;
|
||||||
|
*) # ces commandes ont besoin du nom du service
|
||||||
|
local service="$1"; shift
|
||||||
|
[ -n "$service" ] || {
|
||||||
|
eerror "Vous devez spécifier le nom du service"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
docker_set_deploy_args set_container_name
|
||||||
|
service="${container_name}_${service#${container_name}_}"
|
||||||
|
docker_service "$command" "$@" "$service"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
else
|
else
|
||||||
die "Impossible de trouver ni docker-compose.yml ni docker-stack.yml"
|
die "Impossible de trouver ni docker-compose.yml ni docker-stack.yml"
|
||||||
fi
|
fi
|
||||||
|
@ -1025,6 +1075,17 @@ while [ $# -gt 0 ]; do
|
||||||
enote "Profil $PROFILE"
|
enote "Profil $PROFILE"
|
||||||
auto_build && auto_deploy "${args[@]}"
|
auto_build && auto_deploy "${args[@]}"
|
||||||
;;
|
;;
|
||||||
|
bp)
|
||||||
|
build_set_options "$update_apps_mode" "$update_apps_origin" "$update_apps_branch"
|
||||||
|
[ -f .build.scripts.sh ] && source ./.build.scripts.sh
|
||||||
|
[ -f build.scripts.sh ] && source ./build.scripts.sh
|
||||||
|
args=()
|
||||||
|
while [ $# -gt 0 -a "$1" != -- ]; do
|
||||||
|
args+=("$1"); shift
|
||||||
|
done
|
||||||
|
enote "Profil $PROFILE"
|
||||||
|
auto_build && auto_push "${args[@]}"
|
||||||
|
;;
|
||||||
bpy|bpd)
|
bpy|bpd)
|
||||||
build_set_options "$update_apps_mode" "$update_apps_origin" "$update_apps_branch"
|
build_set_options "$update_apps_mode" "$update_apps_origin" "$update_apps_branch"
|
||||||
[ -f .build.scripts.sh ] && source ./.build.scripts.sh
|
[ -f .build.scripts.sh ] && source ./.build.scripts.sh
|
||||||
|
@ -1036,6 +1097,30 @@ while [ $# -gt 0 ]; do
|
||||||
enote "Profil $PROFILE"
|
enote "Profil $PROFILE"
|
||||||
auto_build && auto_push && auto_deploy "${args[@]}"
|
auto_build && auto_push && auto_deploy "${args[@]}"
|
||||||
;;
|
;;
|
||||||
|
service)
|
||||||
|
args=()
|
||||||
|
while [ $# -gt 0 -a "$1" != -- ]; do
|
||||||
|
args+=("$1"); shift
|
||||||
|
done
|
||||||
|
enote "Profil $PROFILE"
|
||||||
|
auto_service "${args[@]}" || die
|
||||||
|
;;
|
||||||
|
u|update)
|
||||||
|
args=()
|
||||||
|
while [ $# -gt 0 -a "$1" != -- ]; do
|
||||||
|
args+=("$1"); shift
|
||||||
|
done
|
||||||
|
enote "Profil $PROFILE"
|
||||||
|
auto_service update "${args[@]}" || die
|
||||||
|
;;
|
||||||
|
scale)
|
||||||
|
args=()
|
||||||
|
while [ $# -gt 0 -a "$1" != -- ]; do
|
||||||
|
args+=("$1"); shift
|
||||||
|
done
|
||||||
|
enote "Profil $PROFILE"
|
||||||
|
auto_service scale "${args[@]}" || die
|
||||||
|
;;
|
||||||
ip|show-ip)
|
ip|show-ip)
|
||||||
args=()
|
args=()
|
||||||
while [ $# -gt 0 -a "$1" != -- ]; do
|
while [ $# -gt 0 -a "$1" != -- ]; do
|
||||||
|
|
Loading…
Reference in New Issue