问题描述
我有一个在 Docker 中运行的 Caddy 服务器与 Node.JS 服务器通信。此设置目前适用于 MacOS,但不适用于 WSL2。我认为这个问题与我们在 Caddyfile 中使用 http://host.docker.internal:3000
作为代理地址有关,但我不知道如何编写它,因此它适用于 WSL2 和 MacOS。
docker-compose.yml:
version: '3.7'
services:
caddy:
image: 'abiosoft/caddy:latest'
volumes:
- ./certs:/root/certs # to sync mkcert certificates to Caddy
- ./Caddyfile:/etc/Caddyfile # to mount custom Caddyfile
ports:
- '443:2015'
db:
container_name: service_local_db
image: mysql:8.0
environment:
MYSQL_DATABASE: 'service_local'
MYSQL_ROOT_PASSWORD: '******'
ports:
- '3306:3306'
expose:
- '3306'
volumes:
- database_volume:/var/lib/mysql
volumes:
database_volume:
球童档案
servicename.url{
log stdout
tls /root/certs/servicename.local.pem /root/certs/servicename.local-key.pem
proxy / http://host.docker.internal:3000 {
websocket
transparent
header_upstream X-Marotagem true
header_upstream Host "servicename.local"
}
}
我试过了:
- 将
host.docker.internal
更改为host-gateway
。即使这确实有效,反过来也不允许它在 MacOS 上运行。 - 在 docker-compose.yml 的
'host.docker.internal:host-gateway'
下添加extra_hosts:
作为services
。它不起作用,但如果它起作用,我不确定它会如何影响 MacOS。
任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)