我有以下内容...
version: "3.9"
services:
proxy:
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
- UI_URL=http://host.docker.internal:8000
- API_URL=http://host.docker.internal:4200
restart: always
build:
context: ./proxy
dockerfile: Dockerfile
ports:
- "443:443"
FROM nginx:alpine
WORKDIR /proxy
COPY nginx.conf /etc/nginx/conf.d/default.conf.template
COPY host.crt .
COPY host.key .
COPY pre-boot.sh .
ENTRYPOINT [ "/proxy/pre-boot.sh" ]
CMD ["nginx", "-g", "daemon off;"]
EXPOSE 443
但是当我运行应用程序时,我无法在代理容器上访问它......
- 部署容器
- 进入主机上的终端
- 使用终端确认应用程序可以
curl http://localhost:8000
在主机上本地访问。它显示预期的 HTML - 在代理容器中打开终端
- 跑
curl http://host.docker.internal:8000
,但我得到了curl: (7) Failed to connect to host.docker.internal port 8000 after 2 ms: Connection refused
这是可行的,所以不确定可能发生了什么变化。有人知道为什么localhost
可以工作但host.docker.internal
在容器上会失败吗?我在 MacOs 上