Docker Compose with Traefik -无法从容器中访问URL

wpx232ag  于 2023-06-29  发布在  Docker
关注(0)|答案(1)|浏览(124)

简言之,情况如下。(我会在一瞬间更新)
参考问题:Keycloak in Docker "Failed to turn code into token"
我在docker-compose中使用Traefik作为SSL证书的反向代理。我已经部署了Keycloak作为监听keycloak.example.com的服务。另一个服务使用密钥斗篷进行身份验证。
用户Web应用程序能够访问https://keycloak.example.com上的keycloak,但另一个容器没有遵循他们试图直接在容器上连接的https://keycloak.example.com,因此没有找到SSL并被拒绝连接。

service_1          | 09 Jun 19:05:32 ERROR  [adapters.OAuthRequestAuthenticator] - failed to turn code into token
service_1          | java.net.ConnectException: Connection refused (Connection refused)

我考虑的是:
1.直接在keycloak服务上使用SSL终止
1.在另一个网络上运行keycloak并强制它通过主机传递流量
1.运行另一个traefik/keycloak组合来分离SSL终止。
有没有更简单的解决方案来强制docker服务通过traefik传递所有流量?
我尝试从service_1内部ping和curl到keycloak,只有默认端口(8080)应答,因为这是默认运行的keycloak。

qij5mzcb

qij5mzcb1#

最简单的方法是在消费者服务上覆盖DNS条目。换句话说,强制容器访问主机IP,而不是在Docker网络内部查找,从而通过Traefik代理。
1.添加另一个环路IP地址

sudo ip addr add 10.254.254.254 dev lo label lo:2

1.添加extra_hosts

extra_hosts:
      - "service1.local.name:10.254.254.254"

参考文献:1 2 3

相关问题