testcontainers / testcontainers/testcontainers-python
Clickhouse container exposing ports setup is strange
未关闭
还没有人认领这个 Issue。
✅ close on merge
📦 package: clickhouse
- 主要语言
- Python
- 星标
- 2.3k
- 派生
- 386
- 平均合并
- 4 小时 40 分钟
- 30 天内合并 PR
- 1
描述
When we use Clickhouse, we can use 2 kind of ports: 9000 and 8123.
Also different awesome libs work
- with just 9000
- with just 8123
- with both 8123 and 9000 ports
Problem in that: i can use 8123 port or 9000, but can't proper expose it (for example outside port must be 66612) because exposing port seted auto and than no overrided by with_bind_ports(). Also it can be needed to expose 1823 and 9000 together.
ch_container = ClickHouseContainer(image='clickhouse/clickhouse-server:22.6.4', port=8123)
ch_container.with_bind_ports(8123, 66612)
db = ch_container.start() <- started and expose 8123 port to random port 69112 (not 66612)
print(ch.get_connection_url()) <- gives url with port 69112 (not 66612)
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先,跟踪 issue 中描述的 ClickHouseContainer 端口设置和 with_bind_ports() 的行为。验证对端口 8123、端口 9000 或两者进行显式绑定时,会如何影响已启动的容器和 get_connection_url();当请求的主机端口得到遵循且 URL 报告正确的映射端口时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- clickhouse, docker, python
- 领域
- database
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 40/100