springcloud+docker+k8s发布安装第三方插件脚本
Dockerfile 安装第三方依赖插件软件 ,以及构建镜像 #基础镜像,如果本地仓库没有,会从远程仓库拉取 openjdk:8
FROM docker.io/centos:centos7
#暴露端口
EXPOSE 9311
# 避免centos中文乱码
ENV LANG en_US.utf8
#容器中创建工作目录
WORKDIR /usr/local/plugin
#容器中创建子目录
RUN mkdir -p /usr/local/plugin/data && mkdir -p /usr/local/plugin/Echart
# 构建容器时 复制解压 echarts phantomjs jdk 安装第三方插件软件 到容器
ADD jdk-8u202-linux-x64.tar.gz ./
ADD echarts-convert.tar.gz ./
ADD phantomjs-2.1.1-linux-x86_64.tar.bz2 ./
# 构建容器时 编译后的jar包copy到容器中创建到目录内
COPY realize-market-value.jar realize-market-value.jar
#COPY data/ ./data
# 构建容器时 安装phantomjs 依赖系统libfontconfig.so文件
RUN yum -y install fontconfig-devel
# 构建容器时 安装phantomjs 生成echart图片中文字体支持
RUN yum groupinstall 'fonts' -y
#配置环境变量
ENV JAVA_HOME=./jdk1.8.0_202
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
# 构建容器时 指定容器时区
RUN rm -f /etc/localtime \
&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone
# 启动容器时 要执行的命令
ENTRYPOINT ["java","-jar","-Dspring.profiles.active=server"]
# 启动容器时 启动 tomcat
CMD ["/usr/local/tomcat/apache-tomcat-8.5.27/bin/catalina.sh", "run"]
# 启动容器时 CMD的参数可以在镜像运行的时候被替换掉,并且成为ENTRYPOINT命令的参数
CMD ["realize-market-value.jar"]
k8s 部署yaml 脚本配置,realize-market-value.yaml apiVersion: v1
kind: Service
metadata:
name: $IMG_NAME
namespace: rz-dt
labels:
app: $IMG_NAME
spec:
type: ClusterIP #NodePort
ports:
- name: tcp-9311-9311
port: 9311
protocol: TCP
targetPort: 9311
#nodePort: 31051 #service对外开放端口
selector:
app: $IMG_NAME
---
apiVersion: apps/v1
kind: Deployment #对象类型
metadata:
name: $IMG_NAME #名称
namespace: rz-dt
labels:
app: $IMG_NAME #标注
spec:
replicas: 1 #运行容器的副本数,修改这里可以快速修改分布式节点数量
selector:
matchLabels:
app: $IMG_NAME
template:
metadata:
labels:
app: $IMG_NAME
spec:
containers: #docker容器的配置
- name: $IMG_NAME
image: rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt/$IMG_NAME:$IMG_TAG # pull镜像的地址 ip:prot/dir/images:tag
imagePullPolicy: Always #pull镜像时机,
ports:
- containerPort: 9311 #容器对外开放端口,需与springboot配置文件一致
volumeMounts:
- name: time-config
mountPath: /etc/localtime
readOnly: true
- name: volume-logs
mountPath: /logs
subPath: logs
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 10m
memory: 50Mi
#从私有仓库拉取镜像凭证
imagePullSecrets:
- name: rz-dt-miyue-vpc
volumes:
- name: time-config
hostPath:
path: /usr/share/zoneinfo/Asia/Shanghai
- name: volume-logs
persistentVolumeClaim:
claimName: rz-dt-nas-volume-claim
centos配置kubectl客户端连接k8s集群,执行,sh test.sh测试环境发布k8s,sh real.sh生产环境 echo "开始制作镜像..."
image_name=realize-market-value
image_tag=`date +%Y-%m-%d-%H-%M-%S` #_%H%M
echo "当前时间版本号:$image_tag"
docker build -t ${image_name}:${image_tag} .
echo "制作镜像成功!"
echo "登录"
sudo docker login --username=aliyun03985131512 rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com --password=123
echo "镜像最新版本提交"
docker tag ${image_name}:${image_tag} rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt/${image_name}:${image_tag}
docker push rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt/${image_name}:${image_tag}
echo "k8s一键部署"
export IMG_TAG=${image_tag}
export IMG_NAME=${image_name}
envsubst < ${image_name}.yaml | kubectl --kubeconfig ~/.kube-rz/config apply -f -
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/722289.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!