使用入口点脚本初始化 influxdb2 桶
Initialize influxdb2 buckets with entrypoint script
我正在部署用于存储实时数据的 influxdb。我已经使用 1.8.4 一段时间了,最近决定更新到 v2。
我的 docker-compose.yml
文件看起来像这样:
influxdb:
image: influxdb:2.0.4-alpine
ports:
- "8086:8086"
volumes:
- ./influxdb/data:/var/lib/influxdb2
- ./influxdb/config:/etc/influxdb2
- ./influxdb/scripts:/docker-entrypoint-initdb.d
environment:
- DOCKER_INFLUXDB_INIT_MODE=setup
- DOCKER_INFLUXDB_INIT_USERNAME=${INFLUXDB_USR}
- DOCKER_INFLUXDB_INIT_PASSWORD=${INFLUXDB_PWD}
- DOCKER_INFLUXDB_INIT_ORG=Org0
- DOCKER_INFLUXDB_INIT_BUCKET=bucket0
这确实创建了一个名为 bucket0
的初始存储桶。
那是说我想要一个脚本来初始化更多的存储桶、写入一些数据或添加身份验证。在我的 ./influxdb/scripts
目录中,我有一个脚本 init.sh
,它看起来像这样:
#!/bin/bash
set -e
influx bucket create -n bucket1 -d "Bucket 1"
然后我会继续使用 influx write
和 influx auth
以及 influx cli 提供的所有好东西,但是上面的脚本似乎对创建存储桶没有任何影响。
我也尝试过使用 -c /etc/influxdb2/influx-configs
选项或 --token
无济于事。
执行 docker exec -it <container> /bin/bash
然后执行完全相同的命令按预期创建了存储桶。
有什么想法吗?非常感谢!
我在 influxdb 启动时设法 运行 以下脚本:
#!/bin/sh
set -e
influx bucket create -n first -r 7d
influx bucket create -n second -r 7d
- 即使 influxdb docker 图像支持 bash,您应该更喜欢为 alpine 编写 sh 脚本。
- 你的脚本是可执行的吗? (chmod +x init.sh)
- init.sh 脚本仅在第一次启动 influxdb 时执行。初始化后,您必须清理与此映像关联的 docker 卷。如果你使用 docker-compose : docker-compose down -v
此致
我正在部署用于存储实时数据的 influxdb。我已经使用 1.8.4 一段时间了,最近决定更新到 v2。
我的 docker-compose.yml
文件看起来像这样:
influxdb:
image: influxdb:2.0.4-alpine
ports:
- "8086:8086"
volumes:
- ./influxdb/data:/var/lib/influxdb2
- ./influxdb/config:/etc/influxdb2
- ./influxdb/scripts:/docker-entrypoint-initdb.d
environment:
- DOCKER_INFLUXDB_INIT_MODE=setup
- DOCKER_INFLUXDB_INIT_USERNAME=${INFLUXDB_USR}
- DOCKER_INFLUXDB_INIT_PASSWORD=${INFLUXDB_PWD}
- DOCKER_INFLUXDB_INIT_ORG=Org0
- DOCKER_INFLUXDB_INIT_BUCKET=bucket0
这确实创建了一个名为 bucket0
的初始存储桶。
那是说我想要一个脚本来初始化更多的存储桶、写入一些数据或添加身份验证。在我的 ./influxdb/scripts
目录中,我有一个脚本 init.sh
,它看起来像这样:
#!/bin/bash
set -e
influx bucket create -n bucket1 -d "Bucket 1"
然后我会继续使用 influx write
和 influx auth
以及 influx cli 提供的所有好东西,但是上面的脚本似乎对创建存储桶没有任何影响。
我也尝试过使用 -c /etc/influxdb2/influx-configs
选项或 --token
无济于事。
执行 docker exec -it <container> /bin/bash
然后执行完全相同的命令按预期创建了存储桶。
有什么想法吗?非常感谢!
我在 influxdb 启动时设法 运行 以下脚本:
#!/bin/sh
set -e
influx bucket create -n first -r 7d
influx bucket create -n second -r 7d
- 即使 influxdb docker 图像支持 bash,您应该更喜欢为 alpine 编写 sh 脚本。
- 你的脚本是可执行的吗? (chmod +x init.sh)
- init.sh 脚本仅在第一次启动 influxdb 时执行。初始化后,您必须清理与此映像关联的 docker 卷。如果你使用 docker-compose : docker-compose down -v
此致