准备工作
sentinel-dashboard.jar
jdk-8u11-linux-x64.tar.gz
1.创建jar文件夹
mkdir jar
2.在jar文件夹下创建1.8.1文件夹
mkdir 1.8.1
3.将sentinel-dashboard.jar放到1.8.1文件夹下
4.将jdk-8u11-linux-x64.tar.gz放在与jar文件夹同级的目录下
5.编写Dockerfile文件
vim Dockerfile
6.Dockerfile文件内容如下
FROM centos:7.9.2009
MAINTAINER kim "xxx@163.com"
RUN set -x \
&& mkdir -p /data/sentinel \
&& cd /data/sentinel \
&& mkdir -p logs \
&& cd logs \
&& touch start.out \
&& ln -sf /dev/stdout start.out \
&& ln -sf /dev/stderr start.out \
&& ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo '$TIME_ZONE' > /etc/timezone \
# 允许挂载该目录
VOLUME /data/sentinel/logs
# 添加jdk、sentinel的jar包
ADD jdk-8u11-linux-x64.tar.gz /usr/local
ADD ./jar/1.8.1/sentinel-dashboard.jar /data/sentinel-dashboard/sentinel-dashboard.jar
# set environment
ENV BASE_DIR="/data/sentinel" \
JAVA_HOME="/usr/local/jdk1.8.0_11" \
JAVA="/usr/local/jdk1.8.0_11/bin/java" \
JVM_XMS="512m" \
JVM_XMX="512m" \
JVM_XMN="256m" \
TIME_ZONE="Asia/Shanghai" \
SERVER_PORT="8080"
ENV JAVA_OPT="-jar ${BASE_DIR}/sentinel-dashboard.jar -server -Xms=${JVM_XMS} -Xmx=${JVM_XMX} -Xmn=${JVM_XMN} --server.port=${SERVER_PORT} -Dcsp.sentinel.dashboard.server=localhost:${SERVER_PORT} -Dproject.name=sentinel-dashboard -Dcsp.sentinel.api.port=8719"
WORKDIR $BASE_DIR
EXPOSE 8080
#配置启动命令
CMD echo "$JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out && nohup $JAVA ${JAVA_OPT} >> ${BASE_DIR}/logs/start.out 2>&1 < /dev/null
7.构建镜像(注意:后边有一个点)
docker build -t sentinel-dashboard:1.8.1 .
8.编写docker-compose-sentinel.yml
version: '3'
services:
sentinel:
image: sentinel-dashboard:1.8.1
container_name: sentinel
restart: always
volumes:
- /data/sentinel-dashboard-docker/logs:/data/sentinel/logs
ports:
- "8718:8080"
- "8719:8719"
9.启动
docker-compose -f docker-compose-sentinel.yml up -d