url - 如何在docker镜像中创建非硬编码的URL路径以调用后端服务?

标签 url docker microservices docker-swarm docker-image

我是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/

相关文章:

docker - PhpStorm:从 Docker 容器运行 PHPUnit 数据库测试

java - 微服务 - RestTemplate UnknownHostException

microservices - 六边形架构和微服务 : how do they fit together?

azure - 如何将 Azure Api 管理连接到 AKS 编排的微服务

android - 如何在android浏览器上打开嵌入在url中的音频和视频

c# - 忘记密码网址

java - 声明 'Array' 的 url

java - 为什么此 URL 从 Tomcat 返回错误 400?

mysql - Galera mysql集群在Kubernetes中启动失败

java - 如何从 docker compose 设置带有点的属性名称?