在docker compose中为XDB 2.0创建默认用户
在以前版本的XDB中,我们可以使用环境变量创建管理员用户在docker compose中为XDB 2.0创建默认用户,docker,docker-compose,influxdb-2,Docker,Docker Compose,Influxdb 2,在以前版本的XDB中,我们可以使用环境变量创建管理员用户 influxdb: ... environment: INFLUXDB_HOSTNAME: "${INFLUXDB_HOSTNAME}" INFLUXDB_USERNAME: "${INFLUXDB_USERNAME}" INFLUXDB_PASSWORD: "${INFLUXDB_PASSWORD}" ..
influxdb:
...
environment:
INFLUXDB_HOSTNAME: "${INFLUXDB_HOSTNAME}"
INFLUXDB_USERNAME: "${INFLUXDB_USERNAME}"
INFLUXDB_PASSWORD: "${INFLUXDB_PASSWORD}"
...
但在2.0版中,这些环境。变量被删除
我想要实现的是,当我运行docker时,编写我的\u inflox\u 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"
您可以创建另一个容器,该容器将尝试创建用户。 所以这是我的
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:
谢谢你,阿梅罗斯。是的,我已经这样做了。这个解决方案唯一的缺点是,我们只为一次操作创建一个额外的容器