首页 > 解决方案 > 将 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 控制台。我的意思是 docker 文件中的“webagent”服务中缺少一些重要的东西,但我不知道是什么。您对解决我的问题有什么建议吗?感谢一切。

标签: dockerdocker-composedockerfilegridgain

解决方案


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

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

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

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


推荐阅读