我是Docker的新手。让我描述一下我的情况:
我为一个Web应用程序制作了2个docker镜像。一个图像是用于表示的前端Web层,另一个是提供REST服务的后端。
所以我需要为这2张图片运行2个容器。前端在后端 call 服务。现在我需要在前端代码中编写后端URL并构建镜像...我认为这不是微服务的正确方法...
因为如果我的笔记本电脑的IP发生更改或其他人想要使用我的图像,他们将无法获得该服务...那么,如何使URL变量并使我的前端图像可用于其他人而无需重建?
谢谢!
最佳答案
您可以通过在运行Docker容器时将环境变量传递给Docker容器来实现。
像这样的东西:
docker run --name frontend -e MY_APP_BACKEND_IP="192.168.7.2" -e MY_APP_BACKEND_PORT="3000" ...
在后端,假设您正在使用NodeJS,则可以执行以下操作:
var backend_ip = process.env.MY_APP_BACKEND_IP;
注意:不是NodeJS专业人士,但是一些谷歌搜索向我展示了如何做
关于url - 如何在docker镜像中创建非硬编码的URL路径以调用后端服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42216713/