Use octal file modes in the Redis and Valkey modules
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 79/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- docker, node.js, typescript
调研方向
阅读 packages/modules/redis/src/redis-container.ts 和 packages/modules/valkey/src/valkey-container.ts,重点查看 withCopyFilesToContainer 的 mode 值。检查 FileToCopy.mode 的文档说明或使用方式,然后运行 Redis 和 Valkey 模块相关的测试。两个模块中的数据文件都使用 0o644,导入脚本都使用 0o755 时,任务即完成。
由索引模型根据 Issue 内容生成。
描述
What happens
The Redis and Valkey modules pass file modes as decimal numbers where octal was intended:
this.withCopyFilesToContainer([
{ mode: 666, source: this.initialImportScriptFile, target: this.importFilePath },
{ mode: 777, source: path.join(__dirname, "import.sh"), target: "/tmp/import.sh" },
]);
Decimal 666 is octal 1232 and decimal 777 is octal 1411. Copying files with those modes and running stat in the container:
/tmp/mode-decimal-666 1232 --w--wx-wT
/tmp/mode-decimal-777 1411 -r----x--t
/tmp/mode-octal-666 666 -rw-rw-rw-
/tmp/mode-octal-777 777 -rwxrwxrwx
So the import data file is write-only for its owner, and import.sh is read-only for its owner and execute-only for everyone else. withInitialData works today only because exec runs as root (uid 0), which bypasses the permission bits. A non-root exec user could read neither file.
Expected
The modes are written in octal (0o644 for the data file, 0o755 for the script).
Where
packages/modules/redis/src/redis-container.tspackages/modules/valkey/src/valkey-container.ts
Notes
FileToCopy.modeandContentToCopy.modeare typednumberwith no JSDoc. A one-line comment saying the value is an octal permission (0o644) would help prevent this.- The
statoutput was reproduced onmain(aa60a746, 12.2.0) withGenericContainerand the samemodevalues. The non-root case is from reading the permission bits, not run.
Dependencies
- Nothing blocks this. It can start now.
- Coordinate with #1525: the
execcall in the same two files sits a few lines below the modes. Change both in one pull request.
- 主要语言
- TypeScript
- 星标
- 2.6k
- 派生
- 274
- 平均合并
- 1 天 14 小时
- 30 天内合并 PR
- 44
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 提供 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
testcontainers/testcontainers-node 的其他 Issue
-
enhancement minor
难度 2/5 1-3 小时 新手友好度 74/100
testcontainers/testcontainers-node#1539 ·
维护者通常 1 天内回复
-
enhancement minor
难度 2/5 1-3 小时 新手友好度 82/100
testcontainers/testcontainers-node#1533 ·
维护者通常 1 天内回复
-
enhancement minor
难度 2/5 1-3 小时 新手友好度 77/100
testcontainers/testcontainers-node#1531 ·
维护者通常 1 天内回复
-
enhancement minor
难度 2/5 1-3 小时 新手友好度 76/100
testcontainers/testcontainers-node#1529 ·
维护者通常 1 天内回复
-
enhancement minor
难度 2/5 1-3 小时 新手友好度 78/100
testcontainers/testcontainers-node#1528 ·
维护者通常 1 天内回复
查看 testcontainers/testcontainers-node 的全部 Issue
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 72/100
vercel/streamdown#673 · 1 个 reaction ·
维护者通常 1 天内回复
-
docs(stream-protocol): document messageMetatadata on start/finish and the message-metadata chunk未关闭factory-active task-identify-harness-labels-done task-identify-issue-type-done
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
agilepathway/label-checker#721 ·
维护者通常 1 天内回复
-
CLI Empathy needs triage
难度 2/5 1-3 小时 新手友好度 74/100
chromaui/chromatic-cli#1524 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复