docker 运行并使用 arthas 的方式
docker run --init
FROM openjdk:8-jdk-alpine
# copy arthas
COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas
ENV LOG_PATH=/opt/logs \
LOG_HOME=/opt/logs/backup
RUN mkdir -p /opt/logs/backup && \
mkdir -p /opt/apps
ADD target/*.jar /opt/apps/
EXPOSE 8080
ENTRYPOINT ["java", "-XX:+UseG1GC", "-jar", "/opt/apps/spring-boot-demo.jar"]
- 安装
tini
FROM openjdk:8-jdk-alpine
# copy arthas
COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas
ENV LOG_PATH=/opt/logs \
LOG_HOME=/opt/logs/backup
RUN mkdir -p /opt/logs/backup && \
mkdir -p /opt/apps && \
apk add --no-cache tini
ADD target/*.jar /opt/apps/
EXPOSE 8080
ENTRYPOINT ["/sbin/tini", "--", "java", "-XX:+UseG1GC", "-jar", "/opt/apps/spring-boot-demo.jar"]
- 使用
sh -c java -jar xxx && 1
FROM openjdk:8-jdk-alpine
# copy arthas
COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas
ENV LOG_PATH=/opt/logs \
LOG_HOME=/opt/logs/backup
RUN mkdir -p /opt/logs/backup && \
mkdir -p /opt/apps
ADD target/*.jar /opt/apps/
EXPOSE 8080
ENTRYPOINT ["/bin/sh", "-c", "set -e && java -jar /opt/apps/spring-boot-demo.jar && 1"]
- 直接使用
hengyunabc/arthas
与tini方式类似,镜像已安装tini
FROM hengyunabc/arthas
ENV LOG_PATH=/opt/logs \
LOG_HOME=/opt/logs/backup
RUN mkdir -p /opt/logs/backup && \
mkdir -p /opt/apps
ADD target/*.jar /opt/apps/
EXPOSE 8080
ENTRYPOINT ["/sbin/tini", "--", "java", "-XX:+UseG1GC", "-jar", "/opt/apps/spring-boot-demo.jar"]
注
COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas只是为了集成arthas, 可以去除

本文详细介绍了在Docker环境下集成和使用Arthas进行Java应用诊断的方法,包括不同方式的Dockerfile配置,如直接使用Arthas镜像、安装tini以及通过ENTRYPOINT设置启动命令。
3051

被折叠的 条评论
为什么被折叠?



