angular - docker-compose:通过 Angular 应用程序“内部”访问后端服务
问题描述
我的目标如下:
- 通过全局访问前端(Angular)应用程序
localhost:80
localhost:3000
仅通过前端应用“内部”(而非)访问后端(Express)应用
我的docker-compose.yml
文件内容如下:
version: '3'
services:
app:
build: app
ports:
- "80:80"
container_name: front-container
restart: always
depends_on:
- api
api:
build: api
container_name: back-container
restart: always
解决方案
默认情况下,Compose 会为您的应用程序设置一个网络。服务的每个容器都加入默认网络,并且可以被该网络上的其他容器访问,并且可以通过与容器名称相同的主机名被它们发现。
https://docs.docker.com/compose/networking/
我对 Docker 组合和网络的理解是,使用您定义的服务,您可以通过主机名访问 API api
。
我想您还想在 API 服务上公开端口 3000,以便您可以访问它。
然后从您的前端应用程序中,您可以向api:3000/endpoint/to/call
推荐阅读
- outlook - Outlook 2016 加载项对话框高度和宽度已交换
- javascript - 在小数点前后追加值Javascript
- javascript - 无法使用传单渲染矢量切片 (.mbtiles) 文件
- javascript - 页面加载后如何从nodejs服务器向客户端发送额外的javascript代码
- android - Android 将应用程序注册为 LiveData 中的上下文
- gitlab - 将 GitLab CE 11 Omnibus 迁移到 Docker
- pandas - 基于 '%' 符号 pandas 数据框追加
- python - Django 休息框架嵌套序列化程序不适用于 M2M 关系
- javascript - sublime JsFormat - React.js 格式化
- php - 是否有任何精确的程序或技术可以教训调试时间?