如何使用 docker composer 为 reavenDB 添加服务器许可证

How to add the server license for reavenDB with docker composer

有些不清楚如何在 docker 撰写文件中添加 ravenDB 的服务器许可证。

Docker撰写

version: "3.9"
services:
  raven1:
    container_name: raven1
    image: ravendb/ravendb
    ports:
      - 8091:8080
      - 38888:38888
    environment:
      - RAVEN_Setup_Mode=None
      - RAVEN_License_Eula_Accepted=true
      - RAVEN_Security_UnsecuredAccessAllowed=PrivateNetwork
      - RAVEN_License_Path=/Users/********/projects/RavenDB/license.json
    volumes:
      - /Users/********/projects/RavenDB/Data:/opt/RavenDB/Server/RavenData

license.json

{
    "Id": "da9446f7-ad2e-4267-ae62-47ff2f34bc86",
    "Name": "Swisscom",
    "Keys": [
        ...
    ]
}

未添加许可证。 添加此服务器许可证的正确方法是什么。

您的 RAVEN_License_Path 看起来像是指向主机上的路径,因此无法从容器中找到它。

即它只是一个包含任意路径的环境变量,容器内的服务器 运行 将尝试解析该路径。但当然不能,因为它是来自完全不相关的文件系统的路径。

所以你有两种可能

  1. 您根据 ravendb/ravendb 创建了一个新图像,您在其中添加了您的许可文件
  2. 你把你的许可证文件放到一个文件夹中,这个文件夹被装载到容器中(类似于你的数据卷)IMO 这是首选的解决方案。

在这两种情况下,您都需要将 RAVEN_Licence_Path 更改为 运行 容器中的有效路径。

变量 RAVEN_License_Path 显示 docker 内的许可证路径。所以应该是

RAVEN_License_Path=/opt/RavenDB/Server/RavenLicense/license.json

并添加此卷

- /Users/********/projects/RavenLicense:/opt/RavenDB/Server/RavenLicense