Docker-Compose中的Spring应用程序和保险库:如何启动Vault Server?

发布于 2025-02-03 10:09:46 字数 1115 浏览 5 评论 0原文

我正在研究一个应用程序,该应用程序应该从Vault获得一些秘密。 我希望该应用程序可以在容器和另一台库服务器上运行。 但是,我遇到了一些问题,将事情与码头组合在一起。

services:
   app:
       image: app/progettinotoy
       networks:
           - mainnet
       ports:
           - 8080:8080
       depends_on:
           - "vault"
           
       vault:
       image: vault
       cap_add:
           - "IPC_LOCK"
       networks:
           - mainnet
       ports:
           - 8200:8200
       environment: 
           VAULT_ADDR: http://127.0.0.1:8200
           VAULT_LOCAL_CONFIG:
               api_addr = "http://127.0.0.1:8200"
               cluster_addr = "https://127.0.0.1:8201"
               ui = true

               backend "file" {
                 path    = "/vault/file"
               }

               listener "tcp" {
                 address     = "0.0.0.0:8200"
                 tls_disable = "true"
               }
       command: 
           - "server"
        
   
networks:
   mainnet:
       driver: bridge        

主要原因是,即使正在运行Vault服务器,我也应该执行Vault Operator Init并在应用程序开始与Vault Server交互之前获取root令牌和Unseal键。 我该怎么做?

I'm working on an application that should get some secrets from Vault.
I want the app to run on a container and the vault server on another one.
However I'm having some issues putting things together with docker-compose.

services:
   app:
       image: app/progettinotoy
       networks:
           - mainnet
       ports:
           - 8080:8080
       depends_on:
           - "vault"
           
       vault:
       image: vault
       cap_add:
           - "IPC_LOCK"
       networks:
           - mainnet
       ports:
           - 8200:8200
       environment: 
           VAULT_ADDR: http://127.0.0.1:8200
           VAULT_LOCAL_CONFIG:
               api_addr = "http://127.0.0.1:8200"
               cluster_addr = "https://127.0.0.1:8201"
               ui = true

               backend "file" {
                 path    = "/vault/file"
               }

               listener "tcp" {
                 address     = "0.0.0.0:8200"
                 tls_disable = "true"
               }
       command: 
           - "server"
        
   
networks:
   mainnet:
       driver: bridge        

The main reason is that even though vault server is running, I should execute vault operator init and get root token and unseal keys before application starts to interact with vault server.
How can i do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不回头走下去 2025-02-10 10:09:46

答案取决于存储在/Vault/File上的数据发生了什么。

如果数据持续(是否可以在重新启动中生存)?如果是这样,您应该自己部署保管库,并进行适当的初始化仪式。

如果不是(如临时测试实例),请在dev模式下以server -dev -dev -dev-root-token-id = asdf运行保险库,它将使用asdf作为根令牌。

The answer depends on what happens to the data stored on /vault/file.

If the data is persistent (will it survive a restart)? If so, you should deploy Vault on its own and do a proper initialization ceremony.

If not (like an ephemeral test instance), run Vault in DEV mode with server -dev --dev-root-token-id=asdf, it will use asdf as the root token.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文