diff --git a/docs/sources/installation/docker.md b/docs/sources/installation/docker.md index e0ae75892a7..2c7d11d7b1b 100755 --- a/docs/sources/installation/docker.md +++ b/docs/sources/installation/docker.md @@ -112,6 +112,20 @@ docker build \ docker run -d -p 3000:3000 --name=grafana grafana-custom ``` +### Build with pre-installed plugins from other sources + +You can build a Docker image with plugins from other sources by specifying the URL like this: `GF_INSTALL_PLUGINS=;`. + +```bash +cd packaging/docker/custom +docker build \ + --build-arg "GRAFANA_VERSION=latest" \ + --build-arg "GF_INSTALL_PLUGINS=http://plugin-domain.com/my-custom-plugin.zip;custom-plugin,grafana-clock-panel" \ + -t grafana-custom -f Dockerfile . + +docker run -d -p 3000:3000 --name=grafana grafana-custom +``` + Replace `Dockerfile` in above example with `ubuntu.Dockerfile` to build a custom Ubuntu based image (Grafana v6.5+). ### Build with Grafana Image Renderer plugin pre-installed @@ -227,4 +241,3 @@ Refer to [Configure a Grafana Docker image]({{< relref "../administration/config Refer to the [Configuration]({{< relref "../administration/configuration.md" >}}) page for details on options for customizing your environment, logging, database, and so on. - diff --git a/packaging/docker/custom/Dockerfile b/packaging/docker/custom/Dockerfile index 9a6fcf93e3b..e595447e9c6 100644 --- a/packaging/docker/custom/Dockerfile +++ b/packaging/docker/custom/Dockerfile @@ -37,9 +37,15 @@ ARG GF_INSTALL_PLUGINS="" RUN if [ ! -z "${GF_INSTALL_PLUGINS}" ]; then \ OLDIFS=$IFS; \ - IFS=','; \ + IFS=','; \ for plugin in ${GF_INSTALL_PLUGINS}; do \ IFS=$OLDIFS; \ - grafana-cli --pluginsDir "$GF_PATHS_PLUGINS" plugins install ${plugin}; \ - done; \ + if expr match "$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 \ + done \ fi diff --git a/packaging/docker/custom/ubuntu.Dockerfile b/packaging/docker/custom/ubuntu.Dockerfile index a6c7a8ce485..ec3e82d6a4a 100644 --- a/packaging/docker/custom/ubuntu.Dockerfile +++ b/packaging/docker/custom/ubuntu.Dockerfile @@ -41,9 +41,15 @@ ARG GF_INSTALL_PLUGINS="" RUN if [ ! -z "${GF_INSTALL_PLUGINS}" ]; then \ OLDIFS=$IFS; \ - IFS=','; \ + IFS=','; \ for plugin in ${GF_INSTALL_PLUGINS}; do \ IFS=$OLDIFS; \ - grafana-cli --pluginsDir "$GF_PATHS_PLUGINS" plugins install ${plugin}; \ - done; \ + if expr match "$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 \ + done \ fi