【发布时间】:2020-11-01 04:53:45
【问题描述】:
我有两个应用程序作为 docker 容器。 ReactJS 作为前端,springboot 应用作为后端。
当我在 windows docker 桌面工具箱上启动两个应用程序时,由于无法访问后端 api,我无法从前端登录。我所有的容器都使用默认网络。
在 react 应用程序中,我使用此链接访问后端 API_URL: 'http://backend:8080/api/'
docker-compose.yml 在这里。
backend:
container_name: backend
image: backend:2.0.1b4
command: sh -c "/wait && catalina.sh run"
ports:
- 8080:8080
environment:
- ROTATOR_CLIENT=agent_url:9091
- MAST_CLIENT=agent_url:9092
- working-environment=RLAS
- DB_URL=jdbc:postgresql://postgres_url:5432/postgres?schema=public
- DB_USER=postgres
- DB_PASSWORD=postgres
- WAIT_HOSTS=postgres_url:5432
- WAIT_SLEEP_INTERVAL=5
external_links:
- database:postgres_url
- agent:agent_url
restart: always
frontend:
container_name: frontend
image: frontend:2.0.1b4
ports:
- 3000:3000
environment:
- base_url=backend_url:9090
external_links:
- backend:backend_url
restart: always
【问题讨论】:
-
尝试将
depends_on: backend放入 docker-compose 的前端容器配置中。容器是否独立工作(分别连接到 localhost 后端/前端)? -
@k-wasilewski 谢谢你的建议,但我试过了。没有工作。顺便说一句,我找到了解决方案。我已将我的基本 url backedn:8080 更改为 localhost:8080。这很荒谬,但现在有效!
标签: reactjs spring-boot docker docker-compose