244c488b10
Get storagenode and storagenode-updater binaries during run of the container to not to release new docker image on each new version of the storagenode binary. Change-Id: Ic0eb4a9c18a98598dfd9b96c1d352c7399496fd2
91 lines
2.8 KiB
Bash
Executable File
91 lines
2.8 KiB
Bash
Executable File
#!/bin/sh
|
|
set -euo pipefail
|
|
|
|
function get_default_url {
|
|
process=$1
|
|
version=$2
|
|
echo $(wget -O - "${VERSION_SERVER_URL}/processes/${process}/${version}/url?os=linux&arch=${GOARCH}")
|
|
}
|
|
|
|
function get_binary {
|
|
binary=$1
|
|
url=$2
|
|
wget -O - ${url} | unzip -p - > /app/${binary}
|
|
chmod u+x /app/${binary}
|
|
}
|
|
|
|
if [[ ! -f "storagenode-updater" ]]; then
|
|
echo "downloading storagenode-updater"
|
|
get_binary storagenode-updater $(get_default_url storagenode-updater minimum)
|
|
|
|
if ./storagenode-updater should-update storagenode-updater \
|
|
--binary-location /app/storagenode-updater \
|
|
--identity-dir identity \
|
|
--version.server-address=${VERSION_SERVER_URL} 2>/dev/null
|
|
then
|
|
echo "updating storagenode-updater"
|
|
get_binary storagenode-updater $(get_default_url storagenode-updater suggested)
|
|
fi
|
|
fi
|
|
|
|
if [[ ! -f "storagenode" ]]; then
|
|
echo "downloading storagenode"
|
|
|
|
if ./storagenode-updater should-update storagenode \
|
|
--identity-dir identity \
|
|
--version.server-address=${VERSION_SERVER_URL} 2>/dev/null
|
|
then
|
|
get_binary storagenode $(get_default_url storagenode suggested)
|
|
else
|
|
get_binary storagenode $(get_default_url storagenode minimum)
|
|
fi
|
|
fi
|
|
|
|
RUN_PARAMS="${RUN_PARAMS:-} --config-dir config"
|
|
RUN_PARAMS="${RUN_PARAMS:-} --identity-dir identity"
|
|
RUN_PARAMS="${RUN_PARAMS:-} --metrics.app-suffix=-alpha"
|
|
RUN_PARAMS="${RUN_PARAMS:-} --metrics.interval=30m"
|
|
RUN_PARAMS="${RUN_PARAMS:-} --console.address=:14002"
|
|
|
|
if [[ -n "${VERSION_SERVER_URL:-}" ]]; then
|
|
RUN_PARAMS="${RUN_PARAMS:-} --version.server-address=${VERSION_SERVER_URL}"
|
|
fi
|
|
if [[ -n "${ADDRESS:-}" ]]; then
|
|
RUN_PARAMS="${RUN_PARAMS:-} --contact.external-address=${ADDRESS}"
|
|
fi
|
|
if [[ -n "${EMAIL:-}" ]]; then
|
|
RUN_PARAMS="${RUN_PARAMS:-} --operator.email=${EMAIL}"
|
|
fi
|
|
if [[ -n "${WALLET:-}" ]]; then
|
|
RUN_PARAMS="${RUN_PARAMS:-} --operator.wallet=${WALLET}"
|
|
fi
|
|
if [[ -n "${STORAGE:-}" ]]; then
|
|
RUN_PARAMS="${RUN_PARAMS:-} --storage.allocated-disk-space=${STORAGE}"
|
|
fi
|
|
|
|
if [[ "${AUTO_UPDATE:-}" != "true" ]]; then
|
|
AUTO_UPDATE="false"
|
|
fi
|
|
|
|
if [[ "${SETUP:-}" == "true" ]]; then
|
|
exec ./storagenode setup $RUN_PARAMS ${*}
|
|
else
|
|
# install supervisor
|
|
if ! apk list supervisor 2>/dev/null | grep "supervisor"; then
|
|
echo "installing supervisor"
|
|
mkdir -p /var/log/supervisor
|
|
# permorm installation during runtime to not use dockerfile RUN directive to support arch-independent build process
|
|
apk add --no-cache --repositories-file=/dev/null /var/lib/apk-supervisor/*.apk
|
|
|
|
sed -i \
|
|
"s#^command=/app/storagenode-updater\$#command=/app/storagenode-updater run --binary-location /app/storagenode ${RUN_PARAMS} ${*}#" \
|
|
/etc/supervisord.conf
|
|
|
|
sed -i \
|
|
"s#^command=/app/storagenode\$#command=/app/storagenode run ${RUN_PARAMS} ${*}#" \
|
|
/etc/supervisord.conf
|
|
fi
|
|
|
|
exec /usr/bin/supervisord -c /etc/supervisord.conf
|
|
fi
|