Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

[BUG] docker-compose: otel-collector/prometheus/grafana take dynamic IPs from 10.10.10.0/24 and can grab 10.10.10.2, nostream fails with "Address already in use"

未關閉 適合新手
#929 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 1 天內回覆

還沒有人認領這個 Issue。

評估

難度
2/5
預估耗時
1-3 小時
新手友好度
83/100
Issue 類型
缺陷
描述清晰度
描述清楚
活躍度
活躍
技術堆疊
docker-compose
領域
devops

研究方向

從 docker-compose.yml 開始,檢查預設網路的 IPAM 設定以及 issue 中描述的靜態位址。將動態分配範圍設在保留位址之外,接著執行 docker compose down 和 docker compose up -d,並檢查 nostream 網路;所有服務都以靜態分配範圍之外的動態位址啟動即表示完成。

由索引模型根據 Issue 內容生成。

描述

Describe the bug
docker-compose.yml pins nostream, nostream-db and nostream-cache to 10.10.10.2–10.10.10.4, but otel-collector, prometheus and grafana (added with the observability stack) take dynamic addresses from the same 10.10.10.0/24 pool. Docker hands out dynamic addresses from the bottom of the subnet, so whichever of them is created first grabs 10.10.10.2 and nostream then fails:

Error response from daemon: failed to set up container networking: Address already in use

otel-collector has no dependencies, so it is usually created before nostream; it also happens after a host reboot, when the daemon starts containers in arbitrary order.

To Reproduce

  1. docker compose down (network removed), then docker compose up -d.
  2. docker network inspect nostream → otel-collector=10.10.10.2/24; nostream stays in Created with the error above.

Expected behavior
Dynamic addresses never collide with the static ones.

System

  • OS: Ubuntu 22.04, Docker 29.9, compose v5.4
  • Version: 3.4.1

Fix (running in production)
Restrict dynamic allocation to a range outside the static addresses; subnet and gateway stay the same (10.10.10.1 is in the default trustedProxies):

networks:
  default:
    name: nostream
    ipam:
      driver: default
      config:
        - subnet: 10.10.10.0/24
          gateway: 10.10.10.1
          ip_range: 10.10.10.128/26

This also keeps .5 (docker-compose.local.yml) and .252/.253 (i2p/tor overlays) out of the dynamic pool. After this change: nostream=10.10.10.2, otel-collector=10.10.10.128, prometheus=10.10.10.129, grafana=10.10.10.130. Happy to send it as a PR, but PR creation on this repo is limited for me (see #927).

主要語言
TypeScript
星號
829
分支
234
平均合併
16 小時 13 分鐘
30 天內合併 PR
74

環境準備

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

cameri/nostream 的其他 Issue

查看 cameri/nostream 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。