我在连接 Raspberry Pi 上的服务时遇到了一些问题。我希望:1 个 Raspberry Pi 运行多个服务(如 openhab、mosquitto、nagios 等)。这些服务中的每一个都在单独的 docker 容器中运行。为了将所有内容整合在一起,计划使用 nginx 反向代理和 avahi 在本地网络中提供这些服务。因此 avahi 在本地网络中公开了不同的子域(如 openhab.raspberrypi.local,...)。
到目前为止一切顺利,实际状态是这样的。所有容器运行顺利,avahi 将必要的子域暴露给网络,子域由潜在客户记录,但如果我想连接到这些服务,则没有任何响应,没有跟踪路由起作用,并且(子)域甚至似乎不存在。我不知道如何调试它。
我创建了一个最小示例来解决这个问题,如下所示。如果我在新安装的 Raspberry 上运行它,我期望能够从本地网络连接到网页“example.pink-core.local”。
如果我将示例页面的端口直接暴露到另一个端口,就可以访问,因此容器就可以启动并运行。
有人能帮助我找到正确的方向吗?
例如:avahi 部分指向来自https://github.com/gvuyk/rpi-avahi
version: '3'
services:
nginx:
image: alexanderkrause/rpi-nginx-proxy
restart: always
container_name: nginx-proxy
labels:
- com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy
volumes:
- nginx_certs:/etc/nginx/certs:ro
- nginx_vhosts:/etc/nginx/vhosts.d
- nginx_html:/usr/share/nginx/html
- /var/run/docker.sock:/tmp/docker.sock:ro
ports:
- "80:80"
- "443:443"
avahi:
build: avahi
restart: always
container_name: avahi
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
example:
image: hypriot/rpi-busybox-httpd
restart: always
container_name: example
depends_on:
- nginx
environment:
VIRTUAL_HOST: "example.pink-core"
AVAHISERVICES: '[{"name": "example.pink-core","type": "_http._tcp","port": 80}]'
ports:
- "8080:80" #<-- For debugging, direct connection with ip:8080 works
volumes:
nginx_certs:
nginx_vhosts:
nginx_html: