feat:更新项目基于Docker和K8S的容器部署脚本

This commit is contained in:
dianjiu
2024-09-19 12:43:29 +08:00
parent c0ce26d228
commit 2b070091d8
11 changed files with 197 additions and 20 deletions

View File

@@ -3,14 +3,12 @@
# Author: DianJiu
# 指定基础镜像,这是分阶段构建的前期阶段
FROM harbor.njydsz.com/library/jdk:17 as builder
# 维护者
MAINTAINER Remi <remi@yundingshuzi.com>
#VOLUME:挂载目录
VOLUME /temp
#ADD 将app.jar文件将拷贝到容器中,默认拷贝到根路径下
#也可以直接写成ADD app.jar /app.jar 或者 ADD app.jar /
ADD remi-nacos-3.1.1.jar remi-nacos.jar
ADD remi-nacos-3.1.0.jar remi-nacos.jar
#修改app.jar这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
RUN bash -c "touch /remi-nacos.jar"

View File

@@ -1,5 +1,7 @@
## 如果基于Docker部署项目 直接运行如下脚本即可
```shell
sh ./docker_deploy.sh
docker logs -f gateway
docker logs -f remi-nacos-web
```

View File

@@ -1,15 +1,12 @@
#先删除原有的镜像
docker stop sit-remi-nacos-web
docker rm -f sit-remi-nacos-web
docker images | grep sit-remi-nacos-web | awk '{print $3}' | xargs docker rmi -f
docker build -t sit-remi-nacos-web .
docker images | grep sit-remi-nacos-web
docker images | grep remi-nacos-web | awk '{print $3}' | xargs docker rmi -f
docker build -t remi-nacos-web .
docker images | grep remi-nacos-web
#把新镜像推送到私服
docker login -uadmin -pYdsz1020 harbor.njydsz.com
docker tag sit-remi-nacos-web harbor.njydsz.com/remi/sit-remi-nacos-web:3.1.1
docker tag sit-remi-nacos-web harbor.njydsz.com/remi/sit-remi-nacos-web
docker push harbor.njydsz.com/remi/sit-remi-nacos-web:3.1.1
docker push harbor.njydsz.com/remi/sit-remi-nacos-web
#启动最新的镜像服务
docker run --restart=always -t -dit -p 8848:8848 --name sit-remi-nacos-web sit-remi-nacos-web
docker ps -a
docker login -uadmin -pRemi123 harbor.******.com
docker tag remi-nacos-web harbor.******.com/remi-top/remi-nacos-web:3.1.0
docker tag remi-nacos-web harbor.******.com/remi-top/remi-nacos-web
docker push harbor.******.com/remi-top/remi-nacos-web:3.1.0
docker push harbor.******.com/remi-top/remi-nacos-web
#基于Docker启动容器
docker run --restart=always -t -dit -p 8848:8848 --name remi-nacos-web harbor.******.com/remi-top/remi-nacos-web

View 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-nacos-3.1.0.jar remi-nacos.jar
#修改app.jar这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
RUN bash -c "touch /remi-nacos.jar"
#ENTRYPOINT 应用启动命令 参数设定
#由于tomcat的session id的生成主要通过java.security.SecureRandom生成随机数来实现,导致启动过程很慢
#通过-Djava.security.egd=file:/dev/./urandom参数可以加快随机数产生过程
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/remi-nacos.jar"]
#EXPOSE 容器暴露端口
EXPOSE 8848

View 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
```

View File

@@ -0,0 +1,10 @@
#先删除原有的镜像
docker images | grep remi-nacos | awk '{print $3}' | xargs docker rmi -f
docker build -t remi-nacos .
docker images | grep remi-nacos
#把新镜像推送到私服
docker login -uadmin -pRemi123 harbor.******.com
docker tag remi-nacos harbor.******.com/remi-top/remi-nacos:3.1.0
docker tag remi-nacos harbor.******.com/remi-top/remi-nacos
docker push harbor.******.com/remi-top/remi-nacos:3.1.0
docker push harbor.******.com/remi-top/remi-nacos

View File

@@ -0,0 +1,7 @@
#先删除原有的Pod
kubectl delete deployment remi-nacos-web -n remi-top --grace-period=0 --force
kubectl delete svc remi-nacos-web -n remi-top
# 首次启动 需加载配置文件
kubectl create -f nacos-config.yaml -n remi-top
#启动新的Pod
kubectl create -f nacos-deploy.yaml -n remi-top

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: nacos-config
labels:
app: nacos
data:
mysql.host: "192.168.31.31"
mysql.db.name: "remi-nacos"
mysql.port: "3306"
mysql.user: "root"
mysql.password: "Remi@123"

View File

@@ -0,0 +1,116 @@
## Service
apiVersion: v1
kind: Service
metadata:
name: nacos
labels:
app: nacos
spec:
type: NodePort
ports:
- port: 8848
name: server
targetPort: 8848
nodePort: 30999
- port: 9848
name: client-rpc
targetPort: 9848
nodePort: 31999
- port: 9849
name: raft-rpc
targetPort: 9849
- port: 7848
name: old-raft-rpc
targetPort: 7848
selector:
app: nacos
---
## Secret
apiVersion: v1
kind: Secret
metadata:
name: nacos-auth-secret
stringData:
tokenKey: "U3RhcnRkaXNOYWNvc0N1c3RvbVNlY3JldEtleTIwMjQ="
---
## Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: nacos
spec:
replicas: 2
selector:
matchLabels:
app: nacos
template:
metadata:
labels:
app: nacos
spec:
containers:
- name: nacos
image: harbor.******.com/library/remi-nacos
resources:
limits:
memory: "2Gi"
cpu: "1000m"
requests:
memory: "1Gi"
cpu: "500m"
ports:
- containerPort: 8848
name: client
- containerPort: 9848
name: client-rpc
- containerPort: 9849
name: raft-rpc
- containerPort: 7848
name: old-raft-rpc
env:
- name: SPRING_DATASOURCE_PLATFORM
value: "mysql"
- name: MYSQL_SERVICE_HOST
valueFrom:
configMapKeyRef:
name: nacos-config
key: mysql.host
- name: MYSQL_SERVICE_DB_NAME
valueFrom:
configMapKeyRef:
name: nacos-config
key: mysql.db.name
- name: MYSQL_SERVICE_PORT
valueFrom:
configMapKeyRef:
name: nacos-config
key: mysql.port
- name: MYSQL_SERVICE_USER
valueFrom:
configMapKeyRef:
name: nacos-config
key: mysql.user
- name: MYSQL_SERVICE_PASSWORD
valueFrom:
configMapKeyRef:
name: nacos-config
key: mysql.password
- name: MODE
value: "standalone"
- name: NACOS_SERVER_PORT
value: "8848"
- name: PREFER_HOST_MODE
value: "hostname"
- name: TZ
value: Asia/Shanghai
- name: NACOS_AUTH_ENABLE
value: "true"
- name: NACOS_AUTH_TOKEN
valueFrom:
secretKeyRef:
name: nacos-auth-secret
key: tokenKey
- name: NACOS_AUTH_IDENTITY_KEY
value: "X-AUTH-KEY"
- name: NACOS_AUTH_IDENTITY_VALUE
value: "startdis"

View File

@@ -2,4 +2,4 @@
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
kubectl create -f dev-remi-sys-app.yaml -n remi-top

View File

@@ -2,4 +2,4 @@
kubectl delete deployment dev-remi-sys-web -n remi-top --grace-period=0 --force
kubectl delete svc dev-remi-sys-web -n remi-top
#启动新的Pod
kubectl create -f dev-remi-sys-web.yaml -n remi-vip
kubectl create -f dev-remi-sys-web.yaml -n remi-top