logo
0
0
WeChat Login
Update to use CNB official multiarch build method with runner tags

JuiceFS 社区版 Docker 镜像

这是一个基于 CNB 构建的多架构 JuiceFS 社区版 Docker 镜像,支持 amd64 和 arm64 架构。

特性

  • ✅ 多架构支持 (amd64/arm64)
  • ✅ 轻量级 Alpine 基础镜像
  • ✅ JuiceFS 二进制作为 entrypoint
  • ✅ 内置 SQLite 支持
  • ✅ 预配置 WebDAV 和 S3 网关环境变量

环境变量

变量名说明用途
USERNAMEWebDAV 用户名WebDAV 认证
PASSWORDWebDAV 密码WebDAV 认证
MINIO_ROOT_USERS3 用户名S3 网关认证
MINIO_ROOT_PASSWORDS3 密码S3 网关认证

目录结构

目录说明
/data数据存储目录
/dbSQLite 数据库目录

使用方式

1. 使用 SQLite 创建文件系统(格式化)

docker run --rm \
  -v $(pwd)/db:/db \
  -v $(pwd)/data:/data \
  your-registry/juicefs:latest \
  format \
  --storage=file \
  --bucket=/data/bucket \
  --backup-meta=900 \
  --enable-acl \
  my-volume \
  sqlite3:///db/juicefs.db

参数说明:

  • --storage=file: 使用本地文件存储
  • --bucket=/data/bucket: 数据块存储目录
  • --backup-meta=900: 每 15 分钟(900秒)备份一次元数据
  • --enable-acl: 启用 ACL 访问控制列表
  • my-volume: 文件系统名称
  • sqlite3:///db/juicefs.db: SQLite 数据库文件路径

2. WebDAV 模式

docker run -d \
  --name juicefs-webdav \
  -p 9007:9007 \
  -e USERNAME=admin \
  -e PASSWORD=secret123 \
  -v $(pwd)/db:/db \
  your-registry/juicefs:latest \
  webdav \
  --address 0.0.0.0 \
  --port 9007 \
  my-volume \
  sqlite3:///db/juicefs.db

3. S3 网关模式

docker run -d \
  --name juicefs-s3 \
  -p 9006:9006 \
  -e MINIO_ROOT_USER=admin \
  -e MINIO_ROOT_PASSWORD=secret123 \
  -v $(pwd)/db:/db \
  your-registry/juicefs:latest \
  s3gateway \
  --address 0.0.0.0 \
  --port 9006 \
  my-volume \
  sqlite3:///db/juicefs.db

4. 挂载文件系统

docker run --rm \
  --cap-add SYS_ADMIN \
  --device /dev/fuse \
  -v $(pwd)/db:/db \
  -v $(pwd)/mount:/mnt/jfs \
  your-registry/juicefs:latest \
  mount my-volume sqlite3:///db/juicefs.db /mnt/jfs

CNB 构建配置

构建镜像前需要在 CNB 项目设置中配置以下环境变量:

  • CNB_REGISTRY_ENDPOINT: 镜像仓库地址
  • CNB_REGISTRY_USER: 镜像仓库用户名
  • CNB_REGISTRY_PASSWORD: 镜像仓库密码

License

Apache License 2.0