Docker SpringBoot Skywalking 8.1 agent

下载源码包:https://archive.apache.org/dist/skywalking/8.1.0/

-- 创建存放目录
mkdir -p  /opt/skywalking
-- 进入目录
cd /opt/skywalking
-- 下载agentjar
wget https://archive.apache.org/dist/skywalking/8.1.0/apache-skywalking-apm-8.1.0.tar.gz
-- 解压
tar -zxvf apache-skywalking-apm-8.1.0.tar.gz

Jar 直接运行

nohup java -javaagent:/opt/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar 
    -Dskywalking.agent.service_name=vipsoft-server 
    -Dskywalking.collector.backend_service=172.16.0.61:11800 
    -jar vipsoft-server.jar  --server.port=8073 >./test-oauth-server.txt &

Docker 启动(坑比较多)

Dockerfile

# Docker image for SpringBoot file run
# VERSION 0.0.1
# Author: Jimmy
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER Jimmy <Jimmy.Chen@thothcloud.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD vipsoft-1.0.0.jar  app.jar
RUN bash -c 'touch /app.jar'
#把项目中的agent文件夹拷贝进行容器中的/usr/local/agent文件夹中
ADD agent /skywalking/agent/
#修改Docker时区-否则里面的时间会慢8小时
ENV TZ=Asia/Shanghai
#通过文件链接的方式修改 时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

ENV JAVA_OPTS=""
ENV SPRING_PROFILES_ACTIVE=""
ENV SKYWALKING_OAP_SERVER=""

ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -javaagent:/skywalking/agent/skywalking-agent.jar -Dskywalking.collector.backend_service=$SKYWALKING_OAP_SERVER -Dskywalking.agent.service_name=vipsoft-$SPRING_PROFILES_ACTIVE -Dspring.profiles.active=$SPRING_PROFILES_ACTIVE -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]


#docker build -t vipsoft:1.0.0 .

#docker run --name vipsoft-dev-17084 --restart always 
#     -d -p 17084:7084 
#     -e SPRING_PROFILES_ACTIVE="dev" 
#     -e SKYWALKING_OAP_SERVER="172.16.0.61:11800" 
#     -v /opt/logs/vipsoft_dev/:/logs/ 
#     vipsoft:1.0.0



#下面的方式传参,-Dskywalking.agent.service_name 传不进去
#ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Dspring.profiles.active=${spring_profiles_active}","-Dskywalking.agent.service_name=vipsoft-${spring_profiles_active}","-Dskywalking.collector.backend_service=172.16.0.61:11800","-javaagent:/skywalking/agent/skywalking-agent.jar","-jar","/app.jar"]

#docker run --name vipsoft-dev-17084 --restart always 
#     -d -p 17084:7084 
#     -e "spring_profiles_active=dev" 
#     -e "skywalking_oap_server=172.16.0.61:11800" 
#     -v /opt/logs/vipspft_dev/:/logs/ 
#     vipsoft:1.0.0

常规的传参方式不行。把IP写在固定的,名字没改。发现以字符串形式传进来了,所以之前不生效,是服务的IP地址没有传进来。

这边当前服务是有滚动条的,看不出来。还有就是测试多了,排下面去了,以为是没注册进来。鼠标滚一下

原文地址:https://www.cnblogs.com/vipsoft/p/14793815.html