容器中的 solo, 怎么使用 lute-http

本贴最后更新于 2153 天前,其中的信息可能已经时过境迁

容器中的 solo, 怎么使用 lute-http

src/main/java/org/b3log/solo/util/Markdowns.java

private static final String LUTE_ENGINE_URL = "http://localhost:8249";

main.go

addr := "127.0.0.1:8249"

如果 solo 和 lute-http 分别在两个容器中, 或者 solo 在容器中, lute-http 在 host 中.
或者能否把 lute-http 也一并打包进 solo 容器?

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 主要是网络通即可,Solo 容器和 Lute HTTP 容器在一个网络里就行。

    1 回复
  • zhoujin7
    作者

    @88250
    创建了一个自定义网络, 两个容器都在同一个网络下. 但是不行.

    ubuntu@aliyun:~$ docker restart lute-http lute-http ubuntu@aliyun:~$ docker logs lute-http I 2019/09/21 11:42:16 main.go:72: booting Lute HTTP Server on [127.0.0.1:8249] ubuntu@aliyun:~$ docker restart solo solo ubuntu@aliyun:~$ docker logs solo [INFO ]-[2019-09-21 19:42:46]-[com.zaxxer.hikari.HikariDataSource:350]: HikariPool-1 - Shutdown initiated... [INFO ]-[2019-09-21 19:42:46]-[com.zaxxer.hikari.HikariDataSource:352]: HikariPool-1 - Shutdown completed. [INFO ]-[2019-09-21 19:42:46]-[org.b3log.solo.SoloServletListener:155]: Destroyed the context [INFO ]-[2019-09-21 19:42:51]-[org.b3log.solo.SoloServletListener:99]: Solo is booting [ver=3.6.5, servletContainer=jetty/9.4.12.v20180830, os=Linux, isDocker=true, luteAvailable=false, pid=1, runtimeDatabase=MYSQL, runtimeMode=PRODUCTION, jdbc.username=root, jdbc.URL=jdbc:mysql://172.28.0.3:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC] [INFO ]-[2019-09-21 19:42:51]-[com.zaxxer.hikari.HikariDataSource:110]: HikariPool-1 - Starting... [INFO ]-[2019-09-21 19:42:52]-[com.zaxxer.hikari.HikariDataSource:123]: HikariPool-1 - Start completed. [INFO ]-[2019-09-21 19:42:52]-[org.b3log.solo.SoloServletListener:138]: Solo is running ubuntu@aliyun:~$ get-ctnIp.bash /lute-http - 172.28.0.5 /solo - 172.28.0.6 /nginx-proxy - 172.28.0.2 /mysql - 172.28.0.3

    把 main.go 监听 host 从 127.0.01 改成 0.0.0.0 还是不行.

    ubuntu@aliyun:~$ docker restart lute-http lute-http ubuntu@aliyun:~$ docker logs lute-http I 2019/09/21 11:56:20 main.go:72: booting Lute HTTP Server on [0.0.0.0:8249] ubuntu@aliyun:~$ docker restart solo solo ubuntu@aliyun:~$ docker logs solo [INFO ]-[2019-09-21 19:56:39]-[com.zaxxer.hikari.HikariDataSource:350]: HikariPool-1 - Shutdown initiated... [INFO ]-[2019-09-21 19:56:39]-[com.zaxxer.hikari.HikariDataSource:352]: HikariPool-1 - Shutdown completed. [INFO ]-[2019-09-21 19:56:39]-[org.b3log.solo.SoloServletListener:155]: Destroyed the context [INFO ]-[2019-09-21 19:56:44]-[org.b3log.solo.SoloServletListener:99]: Solo is booting [ver=3.6.5, servletContainer=jetty/9.4.12.v20180830, os=Linux, isDocker=true, luteAvailable=false, pid=1, runtimeDatabase=MYSQL, runtimeMode=PRODUCTION, jdbc.username=root, jdbc.URL=jdbc:mysql://172.28.0.3:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC] [INFO ]-[2019-09-21 19:56:44]-[com.zaxxer.hikari.HikariDataSource:110]: HikariPool-1 - Starting...
  • zhoujin7
    作者

    fork 一份 lute-http 就改了下监听的 host 127.0.0.1 -> 0.0.0.0
    下面是 lute-http 的 Dockerfile
    https://raw.githubusercontent.com/zhoujin7/docker-auto-build/master/lute-http/Dockerfile

    创建自定义网络
    docker network create --opt com.docker.network.bridge.name=mynetwork --subnet=172.28.0.0/16 mynetwork

    创建 nginx-proxy, nginx-proxy-letsencrypt, mysql 容器

    创建 lute-http 容器

    docker run -d \ --name lute-http \ --network mynetwork --ip 172.28.0.5 --dns 114.114.114.114 \ --restart=always \ registry.cn-shenzhen.aliyuncs.com/jin7/lute-http

    创建 solo 容器

    docker run -d \ --name solo \ --network mynetwork --ip 172.28.0.6 --dns 114.114.114.114 \ -e "VIRTUAL_HOST=hostname.com" \ -e "LETSENCRYPT_HOST=hostname.com" \ -e RUNTIME_DB="MYSQL" \ -e JDBC_USERNAME="root" \ -e JDBC_PASSWORD="nonpassword" \ -e JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \ -e JDBC_URL="jdbc:mysql://172.28.0.3:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \ --link mysql:db \ --restart=always \ b3log/solo --listen_port=8080 --server_scheme=https --server_host=hostname.com --server_port=
    1 回复
  • 可能是因为 Solo 里面用的 localhost?这个解析不知道容器里会解析成啥哦。

    2 回复
  • zhoujin7
    作者

    @88250
    src/main/java/org/b3log/solo/util/Markdowns.java

    修改为:
    private static final String LUTE_ENGINE_URL = "http://172.28.0.5:8249";

    main.go

    修改为:
    addr := "0.0.0.0:8249"

    LUTE_ENGINE_URL 的 host 改成 lute-http 容器的 ip,
    addr 的 host 改成 0.0.0.0
    这样就成功了.

    希望可以在创建容器的时候动态指定 LUTE_ENGINE_URL 的 host.
    lute-http 的 main.go 改一下 addr := "0.0.0.0:8249"

    1 回复
    1 操作
    zhoujin7 在 2019-09-21 21:19:11 更新了该回帖
  • zhoujin7 1
    作者

    试了一下 lute-http 效果不错

  • 88250 1

    感谢帮忙做实验,稍后我会更新下 Solo 以支持容器化使用 Lute HTTP。主要修改点是支持传入启动参数来指定 Lute HTTP 的接口地址(请关注这里)。

    Lute HTTP 本身应该不用监听所有网卡(即不用使用 0.0.0.0),可以用 docker -p 来暴露端口。

  • Lute HTTP 的 Docker 镜像已经制作好了,欢迎帮忙进行测试:docker pull b3log/lute-http

    1 回复
  • zhoujin7
    作者

    好的 100% 好的

  • 感谢反馈,已经修复 ❤️

    1 回复
  • zhoujin7
    作者

    没啥效果.
    这个 lute-http 容器监听 0.0.0.0:8249
    然后在 solo 容器中, nc -zv 172.28.0.5 8249 端口是开放的

    docker run -d -p 8249:8249 \ --network mynetwork --ip 172.28.0.5 --dns 114.114.114.114 \ --name lute-http \ --restart=always \ b3log/lute-http registry.cn-shenzhen.aliyuncs.com/jin7/lute-http docker run -d \ --name solo \ --network mynetwork --ip 172.28.0.6 --dns 114.114.114.114 \ -e "VIRTUAL_HOST=hostname.com" \ -e "LETSENCRYPT_HOST=hostname.com" \ -e RUNTIME_DB="MYSQL" \ -e JDBC_USERNAME="root" \ -e JDBC_PASSWORD="nonpassword" \ -e JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \ -e JDBC_URL="jdbc:mysql://172.28.0.3:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \ --restart=always \ b3log/solo --listen_port=8080 --server_scheme=https --server_host=hostname.com --server_port --lute_http=http://172.28.0.5:8249

    后面指定--lute_http=http://172.28.0.5:8249 还是--luteHttp= 或--LUTE_HTTP 都没效果.
    docker exec -it solo sh, 进 solo 容器改了 solo.properties 也没用.

    1 回复
  • 代码还有点 bug 刚刚又进行了一次修复,麻烦重新拉取 Solo 镜像,参数 --lute_http=
    不好意思浪费你时间了 🙏

  • CodingOX via macOS

    刚更新这个东东,我发现我的 docker 也没有生效,该如何设置。。。

    1 回复
  • zhoujin7
    作者

    建议放弃.

    1 回复
  • 呃,现在还有配置方面的问题吗?

    1 回复
  • zhoujin7
    作者

    [org.b3log.solo.util.Markdowns:159]: Failed to use [Lute] for markdown
    Connection refused (Connection refused)

  • zhoujin7
    作者

    不如 solo 内置 lute-http 没这么多麻烦

    1 回复
  • 88250 4 评论

    先启动 Lute HTTP 容器再启动 Solo,然后看下 Solo 的启动日志,如果里面有 luteAvailable 的话说明参数是对的。然后访问博客如果出现异常那可能还是网络不通导致哦。

    我也想内置,问题是好像内置不了,Lute 是 golang 写的 🤣

    luteAvailable true, 网络也是通的
    zhoujin7
    一个容器貌似可以跑多个服务的吧
    zhoujin7
    @zhoujin7 奇怪了,这两项都 OK 的话应该不会 Connection refused 的。Docker 容器进程可以启子进程,但是最好还是一个容器对应一个进程好些。我觉得可能 Docker Compose 更适合些,不过暂时没时间做。
    88250
    @88250 docker compose 貌似也不能解决这个问题. 真的能解决这个问题么? 我已经整合两者到一个容器了. 用了 monit 可以设置进程依赖关系. 而且程序比较小
    zhoujin7
  • zhoujin7
    作者

    通过使用 monit, 成功整合 Solo 和 lute-http 到一个容器, 非常好, 有需要的联系我 @ 邮件: image.png😂 😂

    @CodingOX
    image.png
    image.png
    image.png

请输入回帖内容 ...

推荐标签 标签

  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖 • 1 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 74 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 687 关注
  • 倾城之链
    23 引用 • 66 回帖 • 173 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 92 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖 • 4 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    240 引用 • 224 回帖
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    188 引用 • 832 回帖
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    127 引用 • 169 回帖
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 41 关注
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    442 引用 • 1238 回帖 • 599 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 688 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2389 回帖 • 4 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 697 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 165 关注
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    89 引用 • 150 回帖
  • 安全

    安全永远都不是一个小问题。

    200 引用 • 818 回帖 • 2 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    694 引用 • 537 回帖
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 398 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    957 引用 • 944 回帖
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    77 引用 • 37 回帖 • 1 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    135 引用 • 798 回帖
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    167 引用 • 408 回帖 • 484 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    500 引用 • 1396 回帖 • 253 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 368 关注
  • V2Ray
    1 引用 • 15 回帖 • 5 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 507 关注