阿里巴巴Sentinel打包镜像记录

703 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

1.下载sentinel-dashboard的jar包

下载路径:github.com/alibaba/Sen…

创建文件夹/sentinel-dashboard,将下载的jar放到该目录下。

2.创建Dockerfile & bulid镜像

在sentinel-dashboard目录下创建Dockerfile,内容如下:

FROM openjdk:8

#复制上下文目录下的jar包到容器里  使用COPY命令亦可
ADD sentinel-dashboard-1.8.3.jar sentinel-dashboard-1.8.3.jar

EXPOSE 8080

#指定容器启动程序及参数   <ENTRYPOINT> "<CMD>"
ENTRYPOINT ["java","-jar","sentinel-dashboard-1.8.3.jar"]

保存文件,当前目录下执行如下命令创建docker images

docker build -t sentinel-dashboard:1.8.3 .

创建成功后,可通过docker images命令查看到对应镜像

root@246:/home/liumeng/sentinel-dasboard# docker images |grep sentinel
sentinel-dashboard  1.8.3           95ca4c712f05   10 seconds ago   547MB

创建docker-compose文件

version: '3'
services:
  sentinel-dashboard:
    image: sentinel-dashboard:1.8.3
    container_name: sentinel-dashboard
    restart: always
    environment:
      JAVA_OPTS: "-Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -Djava.security.egd=file:/dev/./urandom -Dcsp.sentinel.api.port=8719"
    ports: #避免出现端口映射错误,建议采用字符串格式 8080端口为Dockerfile中EXPOSE端口
      - "58080:8080"
      - "8719:8719"
    volumes:
      - ./root/logs:/root/logs

保存文件并退出,执行命令创建并启动容器。

docker-compose up -d

创建成功后,可通过访问localhost:58080访问sentinel-dashboard的web界面。其中8719是客户端监控API的端口。 可以使用

java -Dserver.port=8718 -Dcsp.sentinel.dashboard.server=localhost:58080 -Dproject.name=sentinel-dashboard -Dcsp.sentinel.api.port=8719 -jar a.jar

至此,sentinel-dashboard安装完成。

3. 上传镜像

docker login --username=xxx  registry.cn-hangzhou.aliyuncs.com  --password=xxx
docker tag sentinel-dashboard:1.8.3 registry.cn-hangzhou.aliyuncs.com/tpdev/sentinel-dashboard:1.8.3
docker push registry.cn-hangzhou.aliyuncs.com/tpdev/sentinel-dashboard:1.8.3

修改docker-compose为

version: '3'
services:
  sentinel-dashboard:
    image: registry.cn-hangzhou.aliyuncs.com/tpdev/sentinel-dashboard:1.8.3
    container_name: sentinel-dashboard
    restart: always
    environment:
      JAVA_OPTS: "-Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -Djava.security.egd=file:/dev/./urandom -Dcsp.sentinel.api.port=8719"
    ports: #避免出现端口映射错误,建议采用字符串格式 8080端口为Dockerfile中EXPOSE端口
      - "58080:8080"
      - "8719:8719"
    volumes:
      - ./root/logs:/root/logs