用上篇博客部署Java程序是ok的,不过Java日志打印在容器里, 不能满足原来ELK的日志搜集。
方法有2种:
1、在Docker容器内部加入日志收集工具,Filebeat或Logstash。
2、将打Docker内的日志打印到宿主机的目录。
本文用的第二种,下面再慢慢说思路,开始叻
先看项目不迷糊
1、首先 Dockerfile 里的 ENTRYPOINT配置Java日志输出无果
# 基础镜像使用Java FROM java:8 LABEL name=shop-client-prod LABEL version=v0.0.1 # 将jar包添加到容器中并更名为 # 注意:这个jar包文件名,请前方服务器 目录查看 COPY /shop-client/target/shop-client-1.0-SNAPSHOT.jar /usr/local/app/client.jar # 容器暴露端口 EXPOSE 7071 # 这个暂且不用 # COPY target/lib /app/lib ENTRYPOINT ["nohup","java","-Djava.security.egd=file:/dev/./urandom","-jar","-Dspring.profiles.active=master","/usr/local/app/shop-client.jar", ">client.out" , "&"]
改为执行shell脚本的方式,把启动Jar的指令拆出来