1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2025-02-26 20:54:21 +01:00

fix ES upgrade script for classical docker installations

This commit is contained in:
Sylvain 2018-11-26 16:49:26 +01:00
parent ffbe3e0b4a
commit 770ae9aaef
2 changed files with 21 additions and 8 deletions

View File

@ -80,10 +80,14 @@ This procedure is not easy to follow so if you don't need to write some code for
Your system may provide a pre-packaged version of docker in its repositories, but this version may be outdated. Your system may provide a pre-packaged version of docker in its repositories, but this version may be outdated.
Please refer to [ubuntu](https://docs.docker.com/install/linux/docker-ce/ubuntu/), [debian](https://docs.docker.com/install/linux/docker-ce/debian/) or [MacOS](https://docs.docker.com/docker-for-mac/install/) documentation to setup a recent version of docker. Please refer to [ubuntu](https://docs.docker.com/install/linux/docker-ce/ubuntu/), [debian](https://docs.docker.com/install/linux/docker-ce/debian/) or [MacOS](https://docs.docker.com/docker-for-mac/install/) documentation to setup a recent version of docker.
5. Add your current user to the docker group and restart. 5. Add your current user to the docker group, to allow using docker without sudo.
This may not be required on some systems, if docker was already installed. This may not be required on some systems, if docker was already installed.
```bash ```bash
# add the docker group if it doesn't already exist
sudo groupadd doker
# add the current user to the docker group
sudo usermod -aG docker $(whoami) sudo usermod -aG docker $(whoami)
# restart to validate changes
sudo reboot sudo reboot
``` ```

View File

@ -334,8 +334,11 @@ upgrade_docker()
local name=$(docker inspect -f '{{.Name}}' "$id" | sed s:^/::g) local name=$(docker inspect -f '{{.Name}}' "$id" | sed s:^/::g)
# get container network name # get container network name
local network=$(docker inspect -f '{{.NetworkSettings.Networks}}' "$id" | sed 's/map\[\(.*\):0x[a-f0-9]*\]/\1/') local network=$(docker inspect -f '{{.NetworkSettings.Networks}}' "$id" | sed 's/map\[\(.*\):0x[a-f0-9]*\]/\1/')
# get container mapping to data folder # get container mappings
local mounts=$(docker inspect -f '{{.Mounts}}' "$id" | sed 's/} {/\n/g' | sed 's/^\[\?{\?bind[[:blank:]]*\([^[:blank:]]*\)[[:blank:]]*\([^[:blank:]]*\)[[:blank:]]*true \(rprivate\)\?}\?]\?$/-v \1:\2/g' | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/ /g') local volumes=$(docker inspect -f '{{.Mounts}}' "$id" | sed 's/} {/\n/g' | sed 's/^\[\?{\?bind[[:blank:]]*\([^[:blank:]]*\)[[:blank:]]*\([^[:blank:]]*\)[[:blank:]]*true \(rprivate\)\?}\?]\?$/-v \1:\2/g')
local mounts=$(echo "$volumes" | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/ /g')
# get mapped ports
local ports=$(docker inspect -f '{{.NetworkSettings.Ports}}' "$id") | sed 's!\([0-9]*\)/tcp:\[{0\.0\.0\.0 \([0-9]*\)}\]!\1:\2!g' | sed 's/^map\[\(.*\)\]/\1/'| sed 's/^map\[\(.*\)\]/\1/' | sed 's/ / -p /' | sed 's/^/-p /'
prepare_upgrade prepare_upgrade
# stop current elastic # stop current elastic
docker stop "$name" docker stop "$name"
@ -347,9 +350,15 @@ upgrade_docker()
then then
image_name="elasticsearch-oss:$target" image_name="elasticsearch-oss:$target"
image="docker.elastic.co/elasticsearch/$image_name" image="docker.elastic.co/elasticsearch/$image_name"
elif [ $target = '5.6' ]
then
configdir=$(echo "$volumes" | grep config | awk -F'[ :]' '{print $2}')
echo -e "\nCopying ElasticSearch 2.4 configuration files from $(pwd)/docker to $configdir..."
sudo cp docker/elasticsearch.yml "$configdir"
sudo cp docker/log4j2.properties "$configdir"
fi fi
docker pull "$image" docker pull "$image"
echo docker run --restart=always -d --name="$name" --network="$network" --ip="$ES_IP" "$mounts" "$image_name" | bash echo docker run --restart=always -d --name="$name" --network="$network" --ip="$ES_IP" "$mounts" "$ports" "$image_name" | bash
wait_for_online wait_for_online
wait_for_green_status wait_for_green_status
# check status # check status