试图环顾四周,但找不到与我需要的东西接近的东西。
我有一个包含docker容器(web
)的docker-compose文件,该容器通过解析主机名在其环境变量中使用另一个容器的IP(api
):
version: '3'
services:
web:
build: ../client/
ports:
- "5000:5000"
- "3000:3000"
environment:
REACT_APP_API_DEV: http://api:8000/server/graphql
api:
build: ../server/
env_file:
- server_variables.env
ports:
- "8000:8000"
redis:
image: "redis:alpine"
我的问题是web
不能在运行时解析此变量。我可以在api
容器中对web
进行ping操作,但是http://api:8000
无法正确解析。我还尝试过将HOST = api设置为变量并手动构建URI,但这也不起作用。
编辑:我添加了完整的docker-compose.yml文件以供参考。我可以在curl
容器中进行api
web
的操作,但是我的应用似乎无法正确解决它。我正在使用NodeJS和React
答案 0 :(得分:1)
您必须使用fs.readFile() documentation
链接它们version: '3'
services:
web:
...
environment:
- HOST: http://api:8000
networks:
- my-network
...
api:
networks:
- my-network
...
networks:
my-network:
答案 1 :(得分:0)
好的,我发现了问题。显然,我的web
容器是使用api
URI从http://api:8000
提取的,但是我的浏览器不知道api
是什么(只有容器知道)。
我遵循here中建议的内容来解析计算机上的主机名,该主机名已解决。