2018-07-26 06:40:52 -05:00
#!/bin/bash -e
PERMISSIONS_OK = 0
if [ ! -r " $GF_PATHS_CONFIG " ] ; then
echo " GF_PATHS_CONFIG=' $GF_PATHS_CONFIG ' is not readable. "
PERMISSIONS_OK = 1
fi
if [ ! -w " $GF_PATHS_DATA " ] ; then
echo " GF_PATHS_DATA=' $GF_PATHS_DATA ' is not writable. "
PERMISSIONS_OK = 1
fi
if [ ! -r " $GF_PATHS_HOME " ] ; then
echo " GF_PATHS_HOME=' $GF_PATHS_HOME ' is not readable. "
PERMISSIONS_OK = 1
fi
if [ $PERMISSIONS_OK -eq 1 ] ; then
echo "You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migration-from-a-previous-version-of-the-docker-container-to-5-1-or-later"
fi
if [ ! -d " $GF_PATHS_PLUGINS " ] ; then
mkdir " $GF_PATHS_PLUGINS "
fi
if [ ! -z ${ GF_AWS_PROFILES +x } ] ; then
> " $GF_PATHS_HOME /.aws/credentials "
for profile in ${ GF_AWS_PROFILES } ; do
access_key_varname = " GF_AWS_ ${ profile } _ACCESS_KEY_ID "
secret_key_varname = " GF_AWS_ ${ profile } _SECRET_ACCESS_KEY "
region_varname = " GF_AWS_ ${ profile } _REGION "
if [ ! -z " ${ !access_key_varname } " -a ! -z " ${ !secret_key_varname } " ] ; then
echo " [ ${ profile } ] " >> " $GF_PATHS_HOME /.aws/credentials "
echo " aws_access_key_id = ${ !access_key_varname } " >> " $GF_PATHS_HOME /.aws/credentials "
echo " aws_secret_access_key = ${ !secret_key_varname } " >> " $GF_PATHS_HOME /.aws/credentials "
if [ ! -z " ${ !region_varname } " ] ; then
echo " region = ${ !region_varname } " >> " $GF_PATHS_HOME /.aws/credentials "
fi
fi
done
chmod 600 " $GF_PATHS_HOME /.aws/credentials "
fi
2018-07-30 07:05:56 -05:00
# Convert all environment variables with names ending in __FILE into the content of
# the file that they point at and use the name without the trailing __FILE.
2018-07-26 06:40:52 -05:00
# This can be used to carry in Docker secrets.
2018-07-30 07:05:56 -05:00
for VAR_NAME in $( env | grep '^GF_[^=]\+__FILE=.\+' | sed -r "s/([^=]*)__FILE=.*/\1/g" ) ; do
VAR_NAME_FILE = " $VAR_NAME " __FILE
2018-07-26 06:40:52 -05:00
if [ " ${ !VAR_NAME } " ] ; then
echo >& 2 " ERROR: Both $VAR_NAME and $VAR_NAME_FILE are set (but are exclusive) "
exit 1
fi
echo " Getting secret $VAR_NAME from ${ !VAR_NAME_FILE } "
export " $VAR_NAME " = " $( < " ${ !VAR_NAME_FILE } " ) "
unset " $VAR_NAME_FILE "
done
export HOME = " $GF_PATHS_HOME "
if [ ! -z " ${ GF_INSTALL_PLUGINS } " ] ; then
OLDIFS = $IFS
IFS = ','
for plugin in ${ GF_INSTALL_PLUGINS } ; do
IFS = $OLDIFS
2018-08-09 09:29:16 -05:00
if [ [ $plugin = ~ .*\; .* ] ] ; then
pluginUrl = $( echo " $plugin " | cut -d';' -f 1)
pluginWithoutUrl = $( echo " $plugin " | cut -d';' -f 2)
grafana-cli --pluginUrl " ${ pluginUrl } " --pluginsDir " ${ GF_PATHS_PLUGINS } " plugins install ${ pluginWithoutUrl }
else
grafana-cli --pluginsDir " ${ GF_PATHS_PLUGINS } " plugins install ${ plugin }
fi
2018-07-26 06:40:52 -05:00
done
fi
exec grafana-server \
--homepath= " $GF_PATHS_HOME " \
--config= " $GF_PATHS_CONFIG " \
2018-11-16 02:03:46 -06:00
--packaging= docker \
2018-07-26 06:40:52 -05:00
" $@ " \
cfg:default.log.mode= "console" \
cfg:default.paths.data= " $GF_PATHS_DATA " \
cfg:default.paths.logs= " $GF_PATHS_LOGS " \
cfg:default.paths.plugins= " $GF_PATHS_PLUGINS " \
cfg:default.paths.provisioning= " $GF_PATHS_PROVISIONING "