在 docker-compose 中为 influxdb 2.0 创建默认用户
Posted
技术标签:
【中文标题】在 docker-compose 中为 influxdb 2.0 创建默认用户【英文标题】:Creating default user for influxdb 2.0 in docker-compose 【发布时间】:2021-04-17 12:02:02 【问题描述】:在以前版本的 influxdb 中,我们可以使用环境变量创建一个管理员用户
influxdb:
...
environment:
INFLUXDB_HOSTNAME: "$INFLUXDB_HOSTNAME"
INFLUXDB_USERNAME: "$INFLUXDB_USERNAME"
INFLUXDB_PASSWORD: "$INFLUXDB_PASSWORD"
...
但在 2.0 版中,这些环境。变量被删除
我想要实现的是,当我运行 docker-compose up my_influx_db
如果不存在,它应该创建一个默认管理员用户
到目前为止我尝试的是:
my_influx_db:
image: quay.io/influxdb/influxdb:v2.0.3
hostname: my_influx_db
container_name: my_influx_db
ports:
- 8086:8086
command: /bin/sh -c "exec influxd && sleep 10 && influx setup -o test_org -b test_bucket -u user1 -p testpassword -f"
docker-compose up my_influx_db
启动 influxdb,但 10 秒后不运行安装脚本
创建默认管理员用户的正确方法是什么?
编辑: 我设法使用以下配置运行它,但它是正确的方法吗?
command: /bin/sh -c "(sleep 10 && echo setting up user && influx setup -o test_org -b test-bucket -u influxdb -p influxdb -f) & influxd"
【问题讨论】:
【参考方案1】:最新版本:influxdb 2.0.7 更容易提供创建初始管理员用户名和密码的能力
https://docs.influxdata.com/influxdb/v2.0/upgrade/v1-to-v2/docker/#influxdb-2x-initialization-credentials
【讨论】:
哇!很酷,他们添加了这一点。感谢您分享信息!【参考方案2】:您可以创建另一个容器来尝试创建用户。
所以这是我的docker-compose.yml
:
version: '3'
services:
influxdb:
image: quay.io/influxdb/influxdb:v2.0.4
container_name: influxdb
volumes:
- ./influxdbv2:/root/.influxdbv2
ports:
- "8086:8086"
influxdb_cli:
links:
- influxdb
image: quay.io/influxdb/influxdb:v2.0.4
entrypoint: influx setup --bucket test_bucket -t test_token -o test_org --username=test_username --password=test_password --host=http://influxdb:8086 -f
restart: on-failure:20
depends_on:
- influxdb
volumes:
influxdbv2:
【讨论】:
谢谢,@Amerousful。是的,我已经这样做了。这个解决方案唯一的缺点是我们只为一次操作创建了一个额外的容器以上是关于在 docker-compose 中为 influxdb 2.0 创建默认用户的主要内容,如果未能解决你的问题,请参考以下文章
在docker-compose.yml中为自己的mantained docker注册表写什么
Docker-compose:/usr/local/bin/docker-compose:第 1 行:Not:找不到命令