docker-compose - 由于动态 IP,Docker compose 无法从另一个服务访问一个服务
问题描述
我在 Windows WSL2 上运行 docker。我有以下启动 redis 的 docker compose,然后是另一个依赖于 redis 的服务( serviceA )。我需要在 serviceA 启动后运行一个脚本。该脚本需要从serviceA-cont内部访问 redis 。
version: '3.7'
services:
redis-service:
image: redis
container_name: redis-cont
ports:
- "6379"
serviceA:
depends_on:
- redis-service
container_name: serviceA-cont
build:
context: ./app
dockerfile: Dockerfile
command: scripts/customscript.js
ports:
- "8080:8080"
stdin_open: true
使用 docker network inspect,我发现 redis 服务的 IP 在每次 docker compose 构建时都在不断变化。这意味着每次运行 docker compose 时,我都必须在自定义脚本中手动更改 redis 服务的 IP。我如何以更清洁的方式处理这个问题?我尝试创建自定义网络并将其分配给每个服务,但我看到以下错误:
service "redis-service" refers to undefined network "network-name": invalid compose project
在 redis 服务上设置 network_mode:host 会引发此错误:
network mode "network-name" not supported by buildkit
解决方案
推荐阅读
- firebase - 如何限制 Firestore 的 onSnapshot 监听器返回的数据?
- html - 与导航下拉菜单相关的问题
- javascript - 抓住点击选择,添加选项,然后打开选择下拉菜单
- python - Python lxml XPathEvalError:解析较大文件时xpath表达式出错
- netsuite - 如何在销售订单保存搜索的行项目结果中包含主行发货日期?
- javascript - 循环遍历每个工具提示以添加不同的时间戳
- powerbi - USERELATIONSHIP 在使用 FILTER Power BI Desktop 时给出不正确的结果
- html - 如何在CSS上并排对齐标题上的两个元素?
- python - BeautifulSoup 号码提取
- java - try and catch 的解释