Commit b049b003 by Oleg Gaidarenko Committed by Torkel Ödegaard

Build: allow dynamically change docker image (#18112)

* Build: allow dynamically change docker image

Right now, only for couple DBs.
With the 2.1, you can do `${TAG:-5.6}` without needing the `.env` file, but
it seems it would be better for back-compat to support `.env` right now.

Fixes #17891

* Build: add prefix for removal process

* Docs: mention makefile command instead of the bash

Since we are moving to makefile for things and make command
simplifies some of the actions you have to perform to work with
different environments

* Docs: mention dynamic tags in the docs

* Docs: avoid name collision

Fixes #16107
parent 29c89de1
...@@ -39,10 +39,11 @@ public/css/*.min.css ...@@ -39,10 +39,11 @@ public/css/*.min.css
/data/* /data/*
/bin/* /bin/*
# devenv
/devenv/docker-compose.yaml
/devenv/.env
conf/custom.ini conf/custom.ini
fig.yml
devenv/docker-compose.yml
devenv/docker-compose.yaml
/conf/provisioning/**/custom.yaml /conf/provisioning/**/custom.yaml
/conf/provisioning/**/dev.yaml /conf/provisioning/**/dev.yaml
/conf/ldap_dev.toml /conf/ldap_dev.toml
......
...@@ -125,7 +125,7 @@ devenv: devenv-down ...@@ -125,7 +125,7 @@ devenv: devenv-down
@cd devenv; \ @cd devenv; \
./create_docker_compose.sh $(targets) || \ ./create_docker_compose.sh $(targets) || \
(rm -rf docker-compose.yaml; exit 1) (rm -rf {docker-compose.yaml,conf.tmp,.env}; exit 1)
@cd devenv; \ @cd devenv; \
docker-compose up -d --build docker-compose up -d --build
......
...@@ -22,8 +22,7 @@ found. The dashboards are located in the `devenv/dev-dashboards` folder. ...@@ -22,8 +22,7 @@ found. The dashboards are located in the `devenv/dev-dashboards` folder.
# docker-compose with databases # docker-compose with databases
```bash ```bash
./create_docker_compose.sh influxdb prometheus2 elastic5 make devenv sources=influxdb,prometheus2,elastic5
docker-compose up
``` ```
This command will create a docker compose file with specified databases configured and ready to run. Each database has This command will create a docker compose file with specified databases configured and ready to run. Each database has
...@@ -31,3 +30,8 @@ a prepared image with some fake data ready to use. For available databases see ` ...@@ -31,3 +30,8 @@ a prepared image with some fake data ready to use. For available databases see `
for some databases there are multiple images, for example there is prometheus_mac specifically for Macs or different for some databases there are multiple images, for example there is prometheus_mac specifically for Macs or different
version. version.
Some of the blocks support dynamic change of the image version used in docker file. The signature looks like this - `make devenv sources=postgres,openldap name-of-block_version=9.2` -
```bash
make devenv sources=postgres,openldap postgres_version=9.2
```
\ No newline at end of file
...@@ -8,8 +8,8 @@ grafana_config_file=conf.tmp ...@@ -8,8 +8,8 @@ grafana_config_file=conf.tmp
grafana_config=config grafana_config=config
compose_header_file=docker/compose_header.yml compose_header_file=docker/compose_header.yml
fig_file=docker-compose.yaml compose_file=docker-compose.yaml
fig_config=docker-compose.yaml env_file=.env
if [ "$#" == 0 ]; then if [ "$#" == 0 ]; then
blocks=`ls $blocks_dir` blocks=`ls $blocks_dir`
...@@ -24,15 +24,15 @@ if [ "$#" == 0 ]; then ...@@ -24,15 +24,15 @@ if [ "$#" == 0 ]; then
exit 0 exit 0
fi fi
for file in $grafana_config_file $fig_file; do for file in $grafana_config_file $compose_file $env_file; do
if [ -e $file ]; then if [ -e $file ]; then
echo "Deleting $file" echo "Deleting $file"
rm $file rm $file
fi fi
done done
echo "Adding Compose header to $fig_file" echo "Adding Compose header to $compose_file"
cat $compose_header_file >> $fig_file cat $compose_header_file >> $compose_file
for dir in $@; do for dir in $@; do
current_dir=$blocks_dir/$dir current_dir=$blocks_dir/$dir
...@@ -47,10 +47,16 @@ for dir in $@; do ...@@ -47,10 +47,16 @@ for dir in $@; do
echo "" >> $grafana_config_file echo "" >> $grafana_config_file
fi fi
if [ -e $current_dir/$fig_config ]; then if [ -e $current_dir/$compose_file ]; then
echo "Adding $current_dir/$fig_config to $fig_file" echo "Adding $current_dir/$compose_file to $compose_file"
cat $current_dir/$fig_config >> $fig_file cat $current_dir/$compose_file >> $compose_file
echo "" >> $fig_file echo "" >> $compose_file
fi
if [ -e $current_dir/$env_file ]; then
echo "Adding $current_dir/$env_file to .env"
cat $current_dir/$env_file >> .env
echo "" >> .env
fi fi
done done
mysql: mysql:
image: mysql:5.6 image: mysql:${mysql_version}
environment: environment:
MYSQL_ROOT_PASSWORD: rootpass MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: grafana MYSQL_DATABASE: grafana
......
postgrestest: postgrestest:
image: postgres:9.3 image: postgres:${postgres_version}
environment: environment:
POSTGRES_USER: grafana POSTGRES_USER: grafana
POSTGRES_PASSWORD: password POSTGRES_PASSWORD: password
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment