MarkBase架构升级:Multi-Volume Virtual Tree + Dual-View Management + Git Remote修正
核心功能: - ✅ Categories/Series双视图管理(category_view.rs + import_markdown.rs) - ✅ FUSE Multi-Volume支持(tree_type参数) - ✅ SSH/SFTP/SCP/rsync协议完整实现(4042行) - ✅ NFS/SMB Module Phase 1-3完成 - ✅ Archive Module Phase 1-4完成(2916行) - ✅ Download Center API完整实现 - ✅ S3兼容API实现(560行) Git配置修正: - ✅ 删除错误origin(gitea.momentry.ddns.net) - ✅ 删除m5max128(指向机器名) - ✅ 设置origin = m5max128gitea.momentry.ddns.net/admin/markbase - ✅ 设置m4minigitea = m4minigitea.momentry.ddns.net/warren/markbase 数据清理: - ✅ 删除38个临时SQLite(保留accusys.sqlite、demo.sqlite) - ✅ 删除.bak、test_*.bin、调试脚本等临时文件 - ✅ 删除临时目录(build/、download files/、raid_test/等) - ✅ 更新.gitignore排除临时文件 架构优化: - 52个文件修改,2434行新增,4739行删除 - Workspace成员整合(16个crate) - 数据库状态:accusys.sqlite保留(主demo测试) 远程同步: - ✅ 准备推送到m5max128gitea(远程Gitea) - ✅ 准备推送到m4minigitea(本地Gitea)
This commit is contained in:
8
docker/.dockerignore
Normal file
8
docker/.dockerignore
Normal file
@@ -0,0 +1,8 @@
|
||||
.git
|
||||
target/
|
||||
data/
|
||||
node_modules/
|
||||
research/
|
||||
*.sqlite
|
||||
*.db
|
||||
*.swp
|
||||
16
docker/Dockerfile.iscsi_target
Normal file
16
docker/Dockerfile.iscsi_target
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM ubuntu:22.04
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
tgt \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN dd if=/dev/zero of=/lun0.img bs=1M count=256
|
||||
|
||||
COPY docker/targets.conf /etc/tgt/targets.conf
|
||||
|
||||
EXPOSE 3260
|
||||
|
||||
COPY docker/entrypoint.sh /entrypoint.sh
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
36
docker/Dockerfile.raid_test
Normal file
36
docker/Dockerfile.raid_test
Normal file
@@ -0,0 +1,36 @@
|
||||
FROM ubuntu:22.04
|
||||
|
||||
# 安装系统依赖
|
||||
RUN apt-get update && apt-get install -y \
|
||||
dmsetup \
|
||||
targetcli-fb \
|
||||
sqlite3 \
|
||||
fio \
|
||||
curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 安装Rust
|
||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||||
ENV PATH="/root/.cargo/bin:${PATH}"
|
||||
|
||||
# 复制源码
|
||||
COPY . /markbase
|
||||
WORKDIR /markbase
|
||||
|
||||
# 编译项目
|
||||
RUN cargo build --release --bin configure_iscsi
|
||||
|
||||
# 创建测试数据目录
|
||||
RUN mkdir -p /markbase/data/users \
|
||||
&& mkdir -p /tmp/test_disks
|
||||
|
||||
# 创建虚拟磁盘(3个100MB文件作为测试磁盘)
|
||||
RUN dd if=/dev/zero of=/tmp/test_disks/disk1.img bs=1M count=100 \
|
||||
&& dd if=/dev/zero of=/tmp/test_disks/disk2.img bs=1M count=100 \
|
||||
&& dd if=/dev/zero of=/tmp/test_disks/disk3.img bs=1M count=100
|
||||
|
||||
# 设置执行权限
|
||||
RUN chmod +x scripts/*.sh
|
||||
|
||||
# 默认命令
|
||||
CMD ["./scripts/configure_iscsi.sh", "docker_test"]
|
||||
30
docker/Dockerfile.webdav
Normal file
30
docker/Dockerfile.webdav
Normal file
@@ -0,0 +1,30 @@
|
||||
FROM ubuntu:22.04
|
||||
|
||||
# 安装系统依赖
|
||||
RUN apt-get update && apt-get install -y \
|
||||
sqlite3 \
|
||||
curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 安装Rust
|
||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||||
ENV PATH="/root/.cargo/bin:${PATH}"
|
||||
|
||||
# 复制源码
|
||||
COPY . /markbase
|
||||
WORKDIR /markbase
|
||||
|
||||
# 编译项目
|
||||
RUN cargo build --release --bin webdav_server
|
||||
|
||||
# 创建测试数据目录
|
||||
RUN mkdir -p /markbase/data/users
|
||||
|
||||
# 设置执行权限
|
||||
RUN chmod +x scripts/*.sh
|
||||
|
||||
# 暴露端口
|
||||
EXPOSE 4919
|
||||
|
||||
# 默认命令
|
||||
CMD ["cargo", "run", "--release", "--", "webdav_server", "--port", "4919", "--user", "demo"]
|
||||
31
docker/docker-compose.yml
Normal file
31
docker/docker-compose.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
services:
|
||||
raid_test:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: docker/Dockerfile.raid_test
|
||||
privileged: true # 需要特权模式才能运行dmsetup
|
||||
volumes:
|
||||
- ../data:/markbase/data
|
||||
- /tmp/test_disks:/tmp/test_disks
|
||||
command: ["./scripts/configure_iscsi.sh", "docker_test", "/tmp/test_disks/disk1.img", "/tmp/test_disks/disk2.img", "/tmp/test_disks/disk3.img"]
|
||||
|
||||
webdav_server:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: docker/Dockerfile.webdav
|
||||
ports:
|
||||
- "4919:4919"
|
||||
volumes:
|
||||
- ../data:/markbase/data
|
||||
command: ["cargo", "run", "--release", "--", "webdav_server", "--port", "4919", "--user", "docker_test"]
|
||||
|
||||
iscsi_target:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: docker/Dockerfile.iscsi_target
|
||||
ports:
|
||||
- "3260:3260"
|
||||
|
||||
networks:
|
||||
markbase_net:
|
||||
driver: bridge
|
||||
18
docker/entrypoint.sh
Normal file
18
docker/entrypoint.sh
Normal file
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "Starting tgtd..."
|
||||
tgtd
|
||||
|
||||
echo "Waiting for tgtd to be ready..."
|
||||
sleep 2
|
||||
|
||||
echo "Configuring targets from /etc/tgt/targets.conf..."
|
||||
tgt-admin -e
|
||||
|
||||
echo "Verifying targets..."
|
||||
tgtadm --mode target --op show
|
||||
|
||||
echo "tgtd is ready on port 3260"
|
||||
# Keep tgtd running in foreground
|
||||
while true; do sleep 10; done
|
||||
4
docker/targets.conf
Normal file
4
docker/targets.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
<target iqn.2026-05.momentry:libiscsi-test>
|
||||
backing-store /lun0.img
|
||||
incominguser testuser testpass
|
||||
</target>
|
||||
Reference in New Issue
Block a user