Docker部署ArthasTunnel

1、下载ArthasTunnel的安装包

下载地址:下载

 

 2、部署

由于官方只提供了JAR包,如果你想通过Docker方式启动的话,可以自行打包Docker镜像,打包使用的Dockerfile脚本如下:

# 该镜像需要依赖的基础镜像
FROM openjdk:8-jdk-alpine
# 将当前目录下的jar包复制到docker容器的/目录下
ADD arthas-tunnel-server.jar /arthas-tunnel-server.jar
# 声明服务运行的端口
EXPOSE 8080 7777
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/arthas-tunnel-server.jar"]

这里再提供一个一键打包运行ArthasTunnel容器的执行脚本run.sh,脚本内容如下:

#!/usr/bin/env bash

echo '----copy jar----'
docker stop arthas-tunnel-server
echo '----stop container----'
docker rm arthas-tunnel-server
echo '----rm container----'
docker rmi arthas-tunnel-server:1.0-SNAPSHOT
echo '----rm image----'
# 打包编译docker镜像
docker build -t arthas-tunnel-server:1.0-SNAPSHOT .
echo '----build image----'
docker run -p 8080:8080 -p 7777:7777 --name arthas-tunnel-server -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime -v /mydata/app/arthas-tunnel-server/logs:/var/logs -d arthas-tunnel-server:1.0-SNAPSHOT
echo '----start container----'

接下来吧ArthasTunnel的JAR包、Dockerfile文件、执行脚本run.sh上传到Linux服务器上,然后使用./run.sh命令运行即可;

 

3、常见问题

问题1:./run.sh: 权限不够

解决方法:执行命令:chmod +x run.sh

 

问题2:unable to prepare context: path ".\r" not found

原因:

脚本在Windows系统编写时,换行是\r\n。

而在Linux系统中换行是\n。

所以在Linux中运行脚本时,系统会认为\r是一个真实的字符(不是换行符),导致运行错误。

解决方法:linux系统的脚本去掉\r,执行以下命令即可(该命令自动重写覆盖):

sed -i 's/\r//' run.sh

 

posted @ 2023-11-29 10:36  SuperShen  阅读(268)  评论(0编辑  收藏  举报