将WebAgent作为Docker容器启动

问题描述

我正在尝试使用Docker以及docker-compose.yml文件中的Web代理部署GridGain Web控制台。我根据本指南https://www.gridgain.com/docs/web-console/latest/deploying-web-console-docker进行了尝试,但是Web-agent不属于docker部署。

我试图修改docker-compose.yml:

version: '2.4'
services:
  backend:
    image: gridgain/gridgain-web-console-backend:2020.05.00
    # Restart on crash.
    restart: always
    environment:
      # Mail settings
      #- SPRING_MAIL_HOST=
      #- SPRING_MAIL_PORT=
      #- SPRING_MAIL_USERNAME=
      #- SPRING_MAIL_PASSWORD=
      - JVM_OPTS=
    volumes:
      - ${PWD}/Users:/opt/gridgain-web-console-server/work
  frontend:
    depends_on:
      - backend
    image: gridgain/gridgain-web-console-frontend:2020.05.00
    ports:
      # Proxy HTTP Nginx port (HOST_PORT:DOCKER_PORT)
      - 80:8008
    container_name: frontend
  webagent:
    depends_on:
      - frontend
      - backend
    image: gridgain/gridgain-web-agent:2020.05.00
    environment:
      - TOKENS=59f9d111-eaad-405b-a3c8-310e9245f943
      - SERVER_URI=frontend:80

它不起作用。 Web代理始终无法连接到服务器(GridGain控制台)。我通过docker-compose up

运行

我得到以下堆栈跟踪:

webagent_1  | [2020-08-29T12:03:56,213][INFO ][Connect thread][WebSocketRouter] Connecting to server: frontend:80
webagent_1  | [2020-08-29T12:03:56,220][WARN ][Connect thread][AgentUtils] Failed to configure proxy.
webagent_1  | java.net.URISyntaxException: Expected scheme-specific part at index 6: https:
webagent_1  |   at java.net.URI$Parser.fail(URI.java:2848) ~[?:1.8.0_242]
webagent_1  |   at java.net.URI$Parser.failExpecting(URI.java:2854) ~[?:1.8.0_242]
webagent_1  |   at java.net.URI$Parser.parse(URI.java:3057) ~[?:1.8.0_242]
webagent_1  |   at java.net.URI.<init>(URI.java:673) ~[?:1.8.0_242]
webagent_1  |   at org.gridgain.console.agent.AgentUtils.configureProxy(AgentUtils.java:156) ~[gridgain-web-console-agent-2020.05.00.jar:?]
webagent_1  |   at org.gridgain.console.agent.handlers.WebSocketRouter.connect0(WebSocketRouter.java:225) ~[gridgain-web-console-agent-2020.05.00.jar:?]
webagent_1  |   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_242]
webagent_1  |   at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_242]
webagent_1  |   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_242]
webagent_1  |   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_242]
webagent_1  |   at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
webagent_1  | [2020-08-29T12:03:57,032][ERROR][Connect thread][WebSocketRouter] Failed to establish websocket connection with server: frontend:80
webagent_1  | java.lang.IllegalArgumentException: URI scheme must be 'ws' or 'wss'

问题是如何正确将webagent连接到gridgain控制台。我的意思是泊坞窗文件中的'webagent'服务中缺少重要的内容,但我不知道是什么。 您是否有解决我问题的建议? 谢谢你。

解决方法

您在代理中为Web控制台使用了错误的uri,请使用SERVER_URI=http://frontend:8008

要获取代理令牌,您只能运行Web控制台docker-compose up -d backend frontend

  • 注册用户
  • 打开个人资料页面并复制令牌
  • 在网络代理中设置TOKENS
  • 启动代理docker-compose up -d webagent

但是在您的配置文件中找不到NODE_URI。默认情况下,代理将尝试连接到http://localhost:8080,这在Web代理容器中无法访问。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...