##// END OF EJS Templates
feat(docker-upgrade): upgrade compose using github repo + only on linux
super-admin -
Show More
@@ -1076,7 +1076,7 b' rcstack_cli_docker_upgrade_usage() {'
1076 1076 fi
1077 1077
1078 1078 printf "%s\n" "Usage:"
1079 printf " rcstack cli docker-upgrade\n"
1079 printf " rcstack cli docker-upgrade [OPTIONS]\n"
1080 1080 printf " rcstack cli docker-upgrade --help | -h\n"
1081 1081 echo
1082 1082
@@ -1084,6 +1084,12 b' rcstack_cli_docker_upgrade_usage() {'
1084 1084 if [[ -n $long_usage ]]; then
1085 1085 printf "%s\n" "Options:"
1086 1086
1087 # :command.usage_flags
1088 # :flag.usage
1089 printf " %s\n" "--compose"
1090 printf " run an upgrade of docker compose to latest version\n"
1091 echo
1092
1087 1093 # :command.usage_fixed_flags
1088 1094 printf " %s\n" "--help, -h"
1089 1095 printf " Show this help\n"
@@ -2386,6 +2392,23 b' slugify() {'
2386 2392 echo "$slug"
2387 2393 }
2388 2394
2395 check_os() {
2396 echo `uname -s`
2397 }
2398
2399 check_macos_memory() {
2400 echo $(($(memory_pressure | head -n 1 | awk '{ print $4 }') / 1024 / 1024 / 1024))
2401 }
2402
2403 check_linux_memory() {
2404 mem=`free -m --si | awk ' /Mem:/ {print $2}'`
2405 if [ "$mem" -ge 990 -a "$mem" -lt 1000 ]; then
2406 echo 1
2407 else
2408 echo `free -g --si | awk ' /Mem:/ {print $2} '`
2409 fi
2410 }
2411
2389 2412 # src/lib/validate_stack_exists.sh
2390 2413
2391 2414 validate_stack_exists() {
@@ -3766,13 +3789,34 b' rcstack_cli_docker_upgrade_command() {'
3766 3789 # src/cli_docker_upgrade_command.sh
3767 3790 DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
3768 3791 DOCKER_CLI_PLUGINS=$DOCKER_CONFIG/cli-plugins
3792 upgrade_compose=${args[--compose]}
3769 3793
3770 if [[ -f "$DOCKER_CLI_PLUGINS/docker-compose" ]]; then
3771 echo "found docker-compose at $DOCKER_CLI_PLUGINS, removing it now..."
3772 rm -rf "$DOCKER_CLI_PLUGINS/docker-compose"
3773 fi
3794 curl -fsSL https://get.docker.com -o install-docker.sh
3795 # sh install-docker.sh --version 23.0
3796 sh install-docker.sh
3797 rm -rf install-docker.sh
3774 3798
3775 curl https://get.docker.com/ | sh
3799 if [[ $upgrade_compose ]]; then
3800
3801 os_type=$(check_os)
3802 if [ "$os_type" != "Linux" ]; then
3803 echo "$(red compose upgrade is only available for Linux architecture, got \"$os_type\" instead)"
3804 exit
3805 fi
3806
3807 # just ensure we have this dir
3808 mkdir -p "$DOCKER_CLI_PLUGINS"
3809
3810 if [[ -f "$DOCKER_CLI_PLUGINS/docker-compose" ]]; then
3811 echo "found docker-compose at $DOCKER_CLI_PLUGINS, removing it now..."
3812 rm -rf "$DOCKER_CLI_PLUGINS/docker-compose"
3813 fi
3814
3815 NEW_COMPOSE_VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')
3816 echo "new compose version $NEW_COMPOSE_VERSION to be installed in $DOCKER_CLI_PLUGINS"
3817 curl -fsSL https://github.com/docker/compose/releases/download/$NEW_COMPOSE_VERSION/docker-compose-linux-x86_64 -o $DOCKER_CLI_PLUGINS/docker-compose
3818 chmod +x $DOCKER_CLI_PLUGINS/docker-compose
3819 fi
3776 3820
3777 3821 }
3778 3822
@@ -6307,6 +6351,13 b' rcstack_cli_docker_upgrade_parse_requirements() {'
6307 6351 while [[ $# -gt 0 ]]; do
6308 6352 key="$1"
6309 6353 case "$key" in
6354 # :flag.case
6355 --compose)
6356
6357 # :flag.case_no_arg
6358 args['--compose']=1
6359 shift
6360 ;;
6310 6361
6311 6362 -?*)
6312 6363 printf "invalid option: %s\n" "$key" >&2
General Comments 0
You need to be logged in to leave comments. Login now