我试图将我的容器化的Sping Boot 应用程序与另一个容器化的MQTT代理连接起来。它们都在各自的项目中,如下所示:mqtt docker-compose.yml:
version: '3.9'
services:
mqttbroker:
container_name: mqttbroker
restart: always
volumes:
- ./config:/mosquitto/config
- ./data:/mosquitto/data
- ./log:/mosquitto/log
ports:
- 8883:8883
networks:
- mynetwork
volumes:
config:
data:
log:
mqtt Dockerfile
个
FROM eclipse-mosquitto
WORKDIR /mosquitto
COPY . .
EXPOSE 8883
然后是Spring Boot 项目:spring boot docker-compose.yml
version: '3.8'
services:
myapp:
build: .
container_name: myapp
ports:
- '8082:8082'
stdin_open: true
tty: true
networks:
- mynetwork
在我的application.properties
中,我尝试连接到MQTT代理,如下所示:mosquitto.url=tcp://mqttbroker:8883
,连接被拒绝。但是,如果我在本地运行spring Boot 应用程序,我可以使用mosquitto.url=tcp://localhost:8883
连接到docker容器。我宁愿在我的docker-compose文件中包含所有配置,以减少手动代码。非常感谢您的帮助!
1条答案
按热度按时间e5nszbig1#
是的,您必须将网络共享为外部网络。
您可以使用以下命令检查您拥有的网络:
docker network ls
你会注意到他们每个人都有自己的网络。
将此内容添加到Sping Boot Docker-compose文件中应该可以解决此问题:
有关docker compose networks的详细信息