You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose部署Vault服务后执行配置命令受阻求助

解决Docker Compose部署Vault后自动执行配置命令的问题

问题根源

vault server -dev是前台阻塞运行的服务进程,直接在command字段用&、;、&&拼接后续配置命令时,要么server后台运行后容器因主进程退出直接终止,要么后续命令要等server进程结束才执行——而server会一直运行,所以配置命令永远无法触发。

可行解决方案

方案1:自定义启动脚本(Entrypoint)

编写一个启动脚本,先后台启动Vault,等待服务就绪后执行配置,最后挂起等待主进程,确保容器不会退出。

  1. 创建vault-init.sh脚本:
#!/bin/sh

# 后台启动Vault服务
vault server -dev &
VAULT_PID=$!

# 轮询等待Vault服务就绪
until vault status >/dev/null 2>&1; do
  echo "Waiting for Vault to start..."
  sleep 2
done

# 执行配置命令
vault secrets enable -path clickhouse/kv kv-v2
vault secrets enable -path clickhouse/transit transit

# 等待主进程,防止容器退出
wait $VAULT_PID
  1. 给脚本添加执行权限:
chmod +x vault-init.sh
  1. 编写docker-compose.yaml:
version: '3.8'
services:
  vault:
    image: vault
    ports:
      - "8200:8200"
    environment:
      - VAULT_DEV_ROOT_TOKEN_ID=root
      - VAULT_ADDR=http://127.0.0.1:8200
    volumes:
      - ./vault-init.sh:/vault-init.sh
    entrypoint: ["/bin/sh", "/vault-init.sh"]
    cap_add:
      - IPC_LOCK

方案2:使用初始化容器(推荐)

利用Docker Compose的初始化容器,在主Vault服务通过健康检查后执行配置,无需修改主容器的启动逻辑。

docker-compose.yaml示例:

version: '3.8'
services:
  vault:
    image: vault
    ports:
      - "8200:8200"
    environment:
      - VAULT_DEV_ROOT_TOKEN_ID=root
      - VAULT_ADDR=http://0.0.0.0:8200
    cap_add:
      - IPC_LOCK
    healthcheck:
      test: ["CMD", "vault", "status"]
      interval: 2s
      timeout: 5s
      retries: 5

  vault-config:
    image: vault
    depends_on:
      vault:
        condition: service_healthy
    environment:
      - VAULT_ADDR=http://vault:8200
      - VAULT_TOKEN=root
    command: >
      sh -c "
        vault secrets enable -path clickhouse/kv kv-v2;
        vault secrets enable -path clickhouse/transit transit;
        echo 'Vault configuration completed'
      "

注意事项

  • 开发环境必须设置VAULT_DEV_ROOT_TOKEN_ID,否则每次启动生成随机令牌,配置命令会因权限不足失败。
  • 生产环境禁止使用-dev模式,需配置持久化存储、TLS认证等,配置逻辑也要调整为安全的令牌认证方式。

内容的提问来源于stack exchange,提问作者Thadeu Melo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 03:55:22