提问人:azizairo 提问时间:11/17/2023 最后编辑:Jason Allerazizairo 更新时间:11/17/2023 访问量:25
Docker中两个容器之间无法建立WebSocket连接
WebSocket connection between two containers in Docker can not be established
问:
我在 Docker 中两个容器之间的 websocket 连接遇到了一些问题。 一般来说,我有一个在Docker容器中运行的kurento服务器,并且我开发了一个演示应用程序,该应用程序通过提供的Java SDK与kurento服务器进行通信,该SDK在后台使用websocket连接。因此,当我尝试使用容器名称作为 websocket 连接 URL 的主机在 Docker 中运行它们时,它失败并出现异常:
未知主机名:kms。
请您帮助解决这个问题。
这是我的Docker撰写文件:
version: '3.3'
services:
kms:
image: kurento/kurento-media-server:latest
ports:
- "8888:8888"
container_name: kms
volumes:
- type: bind
source: ./docker/kurento/
target: /etc/kurento
networks:
- main-net
kurento-demo-server:
container_name: kurento_demo_server
build:
context: .
dockerfile: Dockerfile
depends_on:
- kms
ports:
- "8443:8443"
networks:
- main-net
networks:
main-net:
name: main-net
driver: bridge
demo-app 的 Docker 文件:
FROM maven:3.8.4-openjdk-17 AS build
WORKDIR /app/
COPY pom.xml .
COPY src ./src
RUN mvn clean package
FROM openjdk:17
WORKDIR /app/
COPY --from=build /app/target/demo-kurento-0.0.1-SNAPSHOT.jar ./app.jar
EXPOSE 8443
CMD ["java", "-jar", "app.jar"]
以下是我如何创建 KurentoClient 以与服务器进行通信:
@Configuration
public class KurentoConfig {
private static final String KURENTO_URL = "ws://kms:8888";
@Bean
public KurentoClient createKurentoClientBean() {
return KurentoClient.create(KURENTO_URL);
}
}
答: 暂无答案
评论