前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >bolo 编译镜像添加jvm参数

bolo 编译镜像添加jvm参数

作者头像
zeekling
发布2022-08-26 19:27:27
发布2022-08-26 19:27:27
51300
代码可运行
举报
运行总次数:0
代码可运行

起因

偶然间注意到实用功能>日志浏览>JVM空闲内存太少了,于是就看了下bolo程序的内存回收情况,发现ygc执行次数太多了,于是就有了改造dockerfile的想法。

编译

下载项目

代码语言:javascript
代码运行次数:0
复制
git clone https://github.com/adlered/bolo-solo.git

修改dockerfile

将dockerfile 修改为如下内容

代码语言:javascript
代码运行次数:0
复制
FROM maven:3-jdk-8-alpine as MVN_BUILD

WORKDIR /opt/bolo/
ADD . /tmp
RUN cd /tmp && mvn package -DskipTests -Pci && mv target/bolo/* /opt/bolo/ \
    && cp -f /tmp/src/main/resources/docker/* /opt/bolo/WEB-INF/classes/

FROM openjdk:8-alpine
LABEL maintainer="Liang Ding<d@b3log.org>"

WORKDIR /opt/bolo/
COPY --from=MVN_BUILD /opt/bolo/ /opt/bolo/
RUN apk add --no-cache ca-certificates tzdata

ENV TZ=Asia/Shanghai
EXPOSE 8080

ENV JAVA_OPTS="-Xms400m -Xmx400m -Xmn320m -Xloggc:/var/log/gc.log"

ENV LISTEN_PORT=8080

ENV SERVER_HOST="localhost"

ENV SERVER_SCHEME="http"

ENV SERVER_PORT=8080

ENV LUTE_HTTP="http://127.0.0.1:8249"

ENTRYPOINT  java ${JAVA_OPTS} -cp WEB-INF/lib/*:WEB-INF/classes  org.b3log.solo.Starter \
     --listen_port=${LISTEN_PORT} \
         --server_scheme=${SERVER_SCHEME} \
         --server_host=${SERVER_HOST} \
         --server_port=${SERVER_PORT} \
         --lute_http=${LUTE_HTTP}

编译

执行下面命令

代码语言:javascript
代码运行次数:0
复制
docker build -t "zeek/bolo" .

启动

执行下面启动命令

代码语言:javascript
代码运行次数:0
复制
docker run --detach --name bolo --network=host  \
    --env RUNTIME_DB="MYSQL" \
        --env JAVA_OPTS="-Xms300m -Xmx300m -Xmn230m -Xloggc:/var/log/gc.log" \
    --env JDBC_USERNAME="root" \
    --env JDBC_PASSWORD="123456" \
    --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
        --env SERVER_HOST="www.zeekling.cn" \
        --env SERVER_PORT="443" \
        --env SERVER_SCHEME="https" \
    --env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC" \
    -v /dockerData/bolo/bolo-fantastic:/opt/bolo/skins/bolo-fantastic \
    -v /dockerData/bolo/bolo-NeoEase:/opt/bolo/skins//bolo-NeoEase-mod \
    zeek/bolo \
        --lute_http=http://127.0.0.1:8249

结束

至此,添加jvm控制参数就结束了。空闲内存明显也多了很多,如下图:

gc也少了很多(内存还可以根据实际情况调整)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020.08.25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 起因
  • 编译
    • 下载项目
    • 修改dockerfile
    • 编译
    • 启动
  • 结束
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档