feat:更新项目基于Docker和K8S的容器部署脚本
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# 服务端口号
|
||||
server:
|
||||
port: 12801
|
||||
port: 1020
|
||||
|
||||
spring:
|
||||
application:
|
||||
|
||||
@@ -3,22 +3,20 @@
|
||||
# Author: DianJiu
|
||||
# 指定基础镜像,这是分阶段构建的前期阶段
|
||||
FROM harbor.njydsz.com/library/jdk:17 as builder
|
||||
# 维护者
|
||||
MAINTAINER DianJiu <dianjiuxyz@gmail.com>
|
||||
#VOLUME:挂载目录
|
||||
VOLUME /temp
|
||||
|
||||
#ADD 将app.jar文件将拷贝到容器中,默认拷贝到根路径下
|
||||
#也可以直接写成ADD app.jar /app.jar 或者 ADD app.jar /
|
||||
ADD remitem-web-1.0.0.jar remitem-web.jar
|
||||
ADD remi-sys-app-3.1.0.jar remi-sys-app.jar
|
||||
|
||||
#修改app.jar这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
|
||||
RUN bash -c "touch /remitem-web.jar"
|
||||
RUN bash -c "touch /remi-sys-app.jar"
|
||||
|
||||
#ENTRYPOINT 应用启动命令 参数设定
|
||||
#由于tomcat的session id的生成主要通过java.security.SecureRandom生成随机数来实现,导致启动过程很慢
|
||||
#通过-Djava.security.egd=file:/dev/./urandom参数可以加快随机数产生过程
|
||||
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/remitem-web.jar"]
|
||||
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/remi-sys-app.jar"]
|
||||
|
||||
#EXPOSE 容器暴露端口
|
||||
EXPOSE 18080
|
||||
EXPOSE 1020
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
|
||||
## 如果基于Docker部署项目 直接运行如下脚本即可
|
||||
```shell
|
||||
sh ./docker_deploy.sh
|
||||
|
||||
docker logs -f remitem-web
|
||||
```
|
||||
docker logs -f dev-remi-sys-app
|
||||
```
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
docker stop remitem-web
|
||||
docker rm -f remitem-web
|
||||
docker rmi remitem-web
|
||||
docker build -t remitem-web .
|
||||
docker images
|
||||
docker run --restart=always -t -dit -p 18080:18080 -e TZ="Asia/Shanghai" --name remitem-web remitem-web
|
||||
docker ps
|
||||
#先删除原有的镜像
|
||||
docker images | grep dev-remi-sys-app | awk '{print $3}' | xargs docker rmi -f
|
||||
docker build -t dev-remi-sys-app .
|
||||
docker images | grep dev-remi-sys-app
|
||||
#把新镜像推送到私服
|
||||
docker login -uadmin -pRemi123 harbor.******.com
|
||||
docker tag dev-remi-sys-app harbor.******.com/remi-top/dev-remi-sys-app:3.1.0
|
||||
docker tag dev-remi-sys-app harbor.******.com/remi-top/dev-remi-sys-app
|
||||
docker push harbor.******.com/remi-top/dev-remi-sys-app:3.1.0
|
||||
docker push harbor.******.com/remi-top/dev-remi-sys-app
|
||||
#基于Docker启动容器
|
||||
docker run --restart=always -t -dit -p 1020:1020 --name dev-remi-sys-app harbor.******.com/remi-top/dev-remi-sys-app
|
||||
|
||||
22
remi-sys/remi-sys-app/src/main/resources/k8s/Dockerfile
Normal file
22
remi-sys/remi-sys-app/src/main/resources/k8s/Dockerfile
Normal file
@@ -0,0 +1,22 @@
|
||||
# Docker image for springboot application
|
||||
# VERSION 0.0.1
|
||||
# Author: DianJiu
|
||||
# 指定基础镜像,这是分阶段构建的前期阶段
|
||||
FROM harbor.njydsz.com/library/jdk:17 as builder
|
||||
#VOLUME:挂载目录
|
||||
VOLUME /temp
|
||||
|
||||
#ADD 将app.jar文件将拷贝到容器中,默认拷贝到根路径下
|
||||
#也可以直接写成ADD app.jar /app.jar 或者 ADD app.jar /
|
||||
ADD remi-sys-app-3.1.0.jar remi-sys-app.jar
|
||||
|
||||
#修改app.jar这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
|
||||
RUN bash -c "touch /remi-sys-app.jar"
|
||||
|
||||
#ENTRYPOINT 应用启动命令 参数设定
|
||||
#由于tomcat的session id的生成主要通过java.security.SecureRandom生成随机数来实现,导致启动过程很慢
|
||||
#通过-Djava.security.egd=file:/dev/./urandom参数可以加快随机数产生过程
|
||||
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/remi-sys-app.jar"]
|
||||
|
||||
#EXPOSE 容器暴露端口
|
||||
EXPOSE 1020
|
||||
13
remi-sys/remi-sys-app/src/main/resources/k8s/README.md
Normal file
13
remi-sys/remi-sys-app/src/main/resources/k8s/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
## 如果基于K8S部署项目 直接运行如下脚本即可
|
||||
```shell
|
||||
sh ./docker_deploy.sh
|
||||
|
||||
sh ./k8s_deploy.sh
|
||||
|
||||
kubectl get pods -n remi-top
|
||||
|
||||
kubectl describe pod dev-remi-sys-app -n remi-top
|
||||
|
||||
kubectl get deployment dev-remi-sys-app -n remi-top -o yaml
|
||||
```
|
||||
@@ -0,0 +1,69 @@
|
||||
## Service
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: dev-remi-sys-app
|
||||
labels:
|
||||
app: dev-remi-sys-app
|
||||
spec:
|
||||
type: NodePort
|
||||
ports:
|
||||
- name: dev-remi-sys-app
|
||||
port: 1020
|
||||
protocol: TCP
|
||||
targetPort: 1020
|
||||
nodePort: 30020
|
||||
selector:
|
||||
app: dev-remi-sys-app
|
||||
---
|
||||
## Deployment
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: dev-remi-sys-app
|
||||
labels:
|
||||
app: dev-remi-sys-app
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
app: dev-remi-sys-app
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: dev-remi-sys-app
|
||||
spec:
|
||||
containers:
|
||||
- image: harbor.******.com/remi-top/dev-remi-sys-app
|
||||
imagePullPolicy: Always
|
||||
name: dev-remi-sys-app
|
||||
ports:
|
||||
- containerPort: 1020
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: NACOS_HOST
|
||||
value: 192.168.31.200
|
||||
- name: NACOS_PORT
|
||||
value: "30888"
|
||||
- name: NAME_SPACE
|
||||
value: dev
|
||||
- name: GROUP_NAME
|
||||
value: dev
|
||||
- name: spring.application.name
|
||||
value: remi-sys-web
|
||||
- name: spring.profiles.active
|
||||
value: dev
|
||||
resources:
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: "500Mi"
|
||||
requests:
|
||||
cpu: "0.2"
|
||||
memory: "200Mi"
|
||||
volumeMounts:
|
||||
- name: logs
|
||||
mountPath: /logs
|
||||
volumes:
|
||||
- name: logs
|
||||
persistentVolumeClaim:
|
||||
claimName: remi-log
|
||||
@@ -0,0 +1,10 @@
|
||||
#先删除原有的镜像
|
||||
docker images | grep dev-remi-sys-app | awk '{print $3}' | xargs docker rmi -f
|
||||
docker build -t dev-remi-sys-app .
|
||||
docker images | grep dev-remi-sys-app
|
||||
#把新镜像推送到私服
|
||||
docker login -uadmin -pRemi123 harbor.******.com
|
||||
docker tag dev-remi-sys-app harbor.******.com/remi-top/dev-remi-sys-app:3.1.0
|
||||
docker tag dev-remi-sys-app harbor.******.com/remi-top/dev-remi-sys-app
|
||||
docker push harbor.******.com/remi-top/dev-remi-sys-app:3.1.0
|
||||
docker push harbor.******.com/remi-top/dev-remi-sys-app
|
||||
@@ -0,0 +1,5 @@
|
||||
#先删除原有的Pod
|
||||
kubectl delete deployment dev-remi-sys-app -n remi-top --grace-period=0 --force
|
||||
kubectl delete svc dev-remi-sys-app -n remi-top
|
||||
#启动新的Pod
|
||||
kubectl create -f dev-remi-sys-app.yaml -n remi-vip
|
||||
Reference in New Issue
Block a user