mongod社区版 + mongot社区版,实现数据库+向量库检索等功能

部署目录层级

kotlin 复制代码
mongo
├── mongod
│   ├── data
│   ├── docker-compose.yml
│   ├── init.txt
│   ├── mongodb-community-server_8.2.1-ubi8.tar
│   ├── mongod.conf
│   └── sampledata.archive
└── mongot
    ├── data
    ├── docker-compose.yml
    ├── mongodb-community-search_0.54.0.tar
    ├── mongot.conf
    └── pwfile

部署 mongod社区版

创建文件 mongod.conf

yaml 复制代码
storage:
   dbPath: /data/db

net:
   port: 27017
   bindIp: 0.0.0.0

setParameter:
   searchIndexManagementHostAndPort: mongot-service:27028
   mongotHost: mongot-service:27028
   skipAuthenticationToSearchIndexManagementServer: false
   useGrpcForSearch: true


replication:
   replSetName: rs0

创建文件 init.txt

php 复制代码
# 进入shell
mongosh


# 查副本集状态
rs.status()


# 创建副本集
rs.initiate({
   _id: "rs0",
   members: [
     { _id: 0, host: "宿主机ip:27017" }
   ]
 });


# 建用户
db.getSiblingDB('admin').createUser({
   user: '数据库用户名',
   pwd: '数据库密码',
   roles: [{ role: 'root', db: 'admin' }]
});


use admin;

show users;

创建文件 docker-compose.yml

yaml 复制代码
services:
  mongod-service:
    user: root
    image: mongodb/mongodb-community-server:8.2.1-ubi8
    container_name: mongod
    command: 
         mongod --config /etc/mongod.conf 
    ports:
      - 27017:27017
    volumes:
      - ./data:/data/db
      - ./mongod.conf:/etc/mongod.conf:ro
      - /etc/hosts:/etc/hosts
    networks:
      - mongo-network
    healthcheck:
      test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s

networks:
  mongo-network:
    name: mongo-network

启动

csharp 复制代码
docker-compose up -d
根据init.txt,进入容器,初始化

部署 mongot社区版

创建文件 mongot.conf

yaml 复制代码
syncSource:
   replicaSet:
      hostAndPort: "mongod-service:27017"
      username: 数据库用户名
      passwordFile: /mongot-community/pwfile
      authSource: admin
      tls: false
      readPreference: primaryPreferred
storage:
   dataPath: "/data/mongot"
server:
   grpc:
      address: "mongot-service:27028"
      tls:
         mode: "disabled"
metrics:
   enabled: true
   address: "mongot-service:9946"
healthCheck:
   address: "mongot-service:8080"
logging:
   verbosity: DEBUG

创建文件 pwfile

bash 复制代码
echo -n "数据库密码" > pwfile
chmod 400 pwfile

创建文件 docker-compose.yml

yaml 复制代码
services:
  mongot-service:
    user: root
    image: mongodb/mongodb-community-search:0.54.0
    container_name: mongot
    networks:
      - mongo-network
    volumes:
      - ./data:/data/mongot
      - ./mongot.conf:/mongot-community/config.default.yml
      - ./pwfile:/mongot-community/pwfile:ro
      - /etc/hosts:/etc/hosts
    ports:
      - 27028:27028
      - 9946:9946
      - 8080:8080
    healthcheck:
      test: ["CMD", "curl", "-f", "http://宿主机ip:8080/health"]
      interval: 30s
      timeout: 10s
      retries: 3

networks:
  mongo-network:
    name: mongo-network

启动

复制代码
docker-compose up -d

验证

ruby 复制代码
验证
https://www.mongodb.com/zh-cn/docs/atlas/atlas-vector-search/tutorials/vector-search-quick-start/?deployment-type=self#init-mongo.sh
相关推荐
一鹿高歌17 分钟前
🔥内存炸了!背刺我的竟然是Redisson!!
后端
lizhongxuan18 分钟前
AI 的底层思考
后端
Penge66639 分钟前
解密 Kafka 与 RocketMQ 消费模型的核心之战
后端
小码哥_常43 分钟前
Spring Boot遇上Maven依赖冲突:打怪升级全攻略
后端
用户73440281934244 分钟前
Spring Boot 集成 Redis 并调用 Lua 脚本详解
后端
小码哥_常1 小时前
Spring Boot多模块项目:Parent、BOM、Starter的分工大揭秘
后端
SimonKing1 小时前
GitHub 10万星的OpenCode,正在悄悄改变我们的工作流
java·后端·程序员
Moment1 小时前
OpenClaw 从能聊到能干差的是这 50 个 Skills 😍😍😍
前端·后端·开源
怕浪猫2 小时前
第20章:Web服务实战——构建RESTful API
后端·go·编程语言
BingoGo2 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php