【发布时间】:2020-07-15 14:45:44
【问题描述】:
所以我有以下 docker-compose.yml
version: "3.7"
services:
roundclinic-mysql:
image: mysql:5.7
networks:
- spring-boot-mysql-network
environment:
- MYSQL_DATABASE=
- MYSQL_USER=
- MYSQL_PASSWORD=
- MYSQL_ROOT_PASSWORD=
volumes:
- ./mysqldata:/var/lib/mysql:rw,delegated
ports:
- "3306:3306"
web-service:
image: roundclinic/roundclinic:latest
networks:
- spring-boot-mysql-network
- traefik-network
depends_on:
- roundclinic-mysql
ports:
- 8080:8080
environment:
- "SPRING_PROFILES_ACTIVE=dev"
links:
- roundclinic-mysql
labels:
- "--providers.docker.network=traefik_default"
- "traefik.enable=true"
- "traefik.http.routers.roundclinic.rule=Host(`api-dev.roundclinic.app`)"
- "traefik.http.routers.roundclinic.entrypoints=web"
- "traefik.http.services.cal.loadbalancer.server.port=8080"
traefik:
image: "traefik:v2.2"
container_name: "traefik"
command:
- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "traefik.docker.network=traefik-network"
ports:
- "80:80"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
networks:
traefik-network:
driver: bridge
external: true
spring-boot-mysql-network:
driver: bridge
volumes:
my-db:
spring boot 启动正常,可以连接mysql。
当我连接到http://api-dev.roundclinic.app:8080/../ 时,我可以很好地访问我的应用程序
当我连接到http://api-dev.roundclinic.app/../ 时,我得到网关超时。我可以在 traefik 日志中看到它正在将请求转发到似乎正确的 IP 和端口,但实际应用程序没有任何影响。我不确定这里发生了什么。有什么帮助吗?
【问题讨论】:
-
我无法重现此撰写文件的问题。您能否提供更多数据,例如使用它的数据库凭据是什么?但是我认为问题出在端口
80周围,因为那是一个保留的端口号,并且默认情况下不会轻易在没有权限的情况下使用它