From c0ce26d2284793ae0da8fe6420c2a33af27c7375 Mon Sep 17 00:00:00 2001 From: dianjiu Date: Thu, 12 Sep 2024 23:49:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=9B=B4=E6=96=B0=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=9F=BA=E4=BA=8EDocker=E5=92=8CK8S=E7=9A=84=E5=AE=B9=E5=99=A8?= =?UTF-8?q?=E9=83=A8=E7=BD=B2=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- derby.log | 13 ---- .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/docker/Dockerfile | 10 ++- .../src/main/resources/docker/README.md | 6 +- .../main/resources/docker/docker_deploy.sh | 19 +++-- .../src/main/resources/k8s/Dockerfile | 22 ++++++ .../src/main/resources/k8s/README.md | 13 ++++ .../main/resources/k8s/dev-remi-sys-web.yaml | 69 +++++++++++++++++++ .../src/main/resources/k8s/docker_deploy.sh | 10 +++ .../src/main/resources/k8s/k8s_deploy.sh | 5 ++ .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/docker/Dockerfile | 22 ++++++ .../src/main/resources/docker/README.md | 7 ++ .../main/resources/docker/docker_deploy.sh | 12 ++++ .../src/main/resources/k8s/Dockerfile | 22 ++++++ .../src/main/resources/k8s/README.md | 13 ++++ .../main/resources/k8s/dev-remi-sys-web.yaml | 69 +++++++++++++++++++ .../src/main/resources/k8s/docker_deploy.sh | 10 +++ .../src/main/resources/k8s/k8s_deploy.sh | 5 ++ 19 files changed, 301 insertions(+), 30 deletions(-) delete mode 100644 derby.log create mode 100644 remi-sys/remi-sys-app/src/main/resources/k8s/Dockerfile create mode 100644 remi-sys/remi-sys-app/src/main/resources/k8s/README.md create mode 100644 remi-sys/remi-sys-app/src/main/resources/k8s/dev-remi-sys-web.yaml create mode 100644 remi-sys/remi-sys-app/src/main/resources/k8s/docker_deploy.sh create mode 100644 remi-sys/remi-sys-app/src/main/resources/k8s/k8s_deploy.sh create mode 100644 remi-sys/remi-sys-web/src/main/resources/docker/Dockerfile create mode 100644 remi-sys/remi-sys-web/src/main/resources/docker/README.md create mode 100644 remi-sys/remi-sys-web/src/main/resources/docker/docker_deploy.sh create mode 100644 remi-sys/remi-sys-web/src/main/resources/k8s/Dockerfile create mode 100644 remi-sys/remi-sys-web/src/main/resources/k8s/README.md create mode 100644 remi-sys/remi-sys-web/src/main/resources/k8s/dev-remi-sys-web.yaml create mode 100644 remi-sys/remi-sys-web/src/main/resources/k8s/docker_deploy.sh create mode 100644 remi-sys/remi-sys-web/src/main/resources/k8s/k8s_deploy.sh diff --git a/derby.log b/derby.log deleted file mode 100644 index c94eab2..0000000 --- a/derby.log +++ /dev/null @@ -1,13 +0,0 @@ ----------------------------------------------------------------- -Wed Sep 11 17:08:24 CST 2024: -Booting Derby version The Apache Software Foundation - Apache Derby - 10.14.2.0 - (1828579): instance a816c00e-0191-e057-45b8-000002512970 -on database directory memory:D:\Codes\remi-top\remi-cloud\1ec76c96-9207-4b71-b497-ffec1d63b532 with class loader jdk.internal.loader.ClassLoaders$AppClassLoader@5e481248 -Loaded from file:/D:/Maven/remi-top-repo/org/apache/derby/derby/10.14.2.0/derby-10.14.2.0.jar -java.vendor=Amazon.com Inc. -java.runtime.version=17.0.12+7-LTS -user.dir=D:\Codes\remi-top\remi-cloud -os.name=Windows 10 -os.arch=amd64 -os.version=10.0 -derby.system.home=null -Database Class Loader started - derby.database.classpath='' diff --git a/remi-sys/remi-sys-app/src/main/resources/bootstrap.yml b/remi-sys/remi-sys-app/src/main/resources/bootstrap.yml index a0699b5..402d705 100644 --- a/remi-sys/remi-sys-app/src/main/resources/bootstrap.yml +++ b/remi-sys/remi-sys-app/src/main/resources/bootstrap.yml @@ -1,6 +1,6 @@ # 服务端口号 server: - port: 12801 + port: 1020 spring: application: diff --git a/remi-sys/remi-sys-app/src/main/resources/docker/Dockerfile b/remi-sys/remi-sys-app/src/main/resources/docker/Dockerfile index f6b5566..b39ffea 100644 --- a/remi-sys/remi-sys-app/src/main/resources/docker/Dockerfile +++ b/remi-sys/remi-sys-app/src/main/resources/docker/Dockerfile @@ -3,22 +3,20 @@ # Author: DianJiu # 指定基础镜像,这是分阶段构建的前期阶段 FROM harbor.njydsz.com/library/jdk:17 as builder -# 维护者 -MAINTAINER DianJiu #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 diff --git a/remi-sys/remi-sys-app/src/main/resources/docker/README.md b/remi-sys/remi-sys-app/src/main/resources/docker/README.md index 893406d..e5bbdd4 100644 --- a/remi-sys/remi-sys-app/src/main/resources/docker/README.md +++ b/remi-sys/remi-sys-app/src/main/resources/docker/README.md @@ -1,5 +1,7 @@ + +## 如果基于Docker部署项目 直接运行如下脚本即可 ```shell sh ./docker_deploy.sh -docker logs -f remitem-web -``` \ No newline at end of file +docker logs -f dev-remi-sys-app +``` diff --git a/remi-sys/remi-sys-app/src/main/resources/docker/docker_deploy.sh b/remi-sys/remi-sys-app/src/main/resources/docker/docker_deploy.sh index c45bad7..d5b475d 100644 --- a/remi-sys/remi-sys-app/src/main/resources/docker/docker_deploy.sh +++ b/remi-sys/remi-sys-app/src/main/resources/docker/docker_deploy.sh @@ -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 diff --git a/remi-sys/remi-sys-app/src/main/resources/k8s/Dockerfile b/remi-sys/remi-sys-app/src/main/resources/k8s/Dockerfile new file mode 100644 index 0000000..b39ffea --- /dev/null +++ b/remi-sys/remi-sys-app/src/main/resources/k8s/Dockerfile @@ -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 diff --git a/remi-sys/remi-sys-app/src/main/resources/k8s/README.md b/remi-sys/remi-sys-app/src/main/resources/k8s/README.md new file mode 100644 index 0000000..577c796 --- /dev/null +++ b/remi-sys/remi-sys-app/src/main/resources/k8s/README.md @@ -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 +``` diff --git a/remi-sys/remi-sys-app/src/main/resources/k8s/dev-remi-sys-web.yaml b/remi-sys/remi-sys-app/src/main/resources/k8s/dev-remi-sys-web.yaml new file mode 100644 index 0000000..12afbb3 --- /dev/null +++ b/remi-sys/remi-sys-app/src/main/resources/k8s/dev-remi-sys-web.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 \ No newline at end of file diff --git a/remi-sys/remi-sys-app/src/main/resources/k8s/docker_deploy.sh b/remi-sys/remi-sys-app/src/main/resources/k8s/docker_deploy.sh new file mode 100644 index 0000000..aa3810a --- /dev/null +++ b/remi-sys/remi-sys-app/src/main/resources/k8s/docker_deploy.sh @@ -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 diff --git a/remi-sys/remi-sys-app/src/main/resources/k8s/k8s_deploy.sh b/remi-sys/remi-sys-app/src/main/resources/k8s/k8s_deploy.sh new file mode 100644 index 0000000..5e2f307 --- /dev/null +++ b/remi-sys/remi-sys-app/src/main/resources/k8s/k8s_deploy.sh @@ -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 \ No newline at end of file diff --git a/remi-sys/remi-sys-web/src/main/resources/bootstrap.yml b/remi-sys/remi-sys-web/src/main/resources/bootstrap.yml index 9e1fac5..8499577 100644 --- a/remi-sys/remi-sys-web/src/main/resources/bootstrap.yml +++ b/remi-sys/remi-sys-web/src/main/resources/bootstrap.yml @@ -16,7 +16,7 @@ spring: password: nacos discovery: # 配置中心的地址 - #server-addr: ${NACOS_HOST:192.168.31.204}:${NACOS_PORT:8848} + #server-addr: ${NACOS_HOST:192.168.31.18}:${NACOS_PORT:8848} server-addr: ${NACOS_HOST:192.168.31.200}:${NACOS_PORT:30888} #命名空间 namespace: ${SERVICE_NAME_SPACE_NAME:dev} diff --git a/remi-sys/remi-sys-web/src/main/resources/docker/Dockerfile b/remi-sys/remi-sys-web/src/main/resources/docker/Dockerfile new file mode 100644 index 0000000..50eb359 --- /dev/null +++ b/remi-sys/remi-sys-web/src/main/resources/docker/Dockerfile @@ -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-web-3.1.0.jar remi-sys-web.jar + +#修改app.jar这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。 +RUN bash -c "touch /remi-sys-web.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-web.jar"] + +#EXPOSE 容器暴露端口 +EXPOSE 1010 diff --git a/remi-sys/remi-sys-web/src/main/resources/docker/README.md b/remi-sys/remi-sys-web/src/main/resources/docker/README.md new file mode 100644 index 0000000..f42efd3 --- /dev/null +++ b/remi-sys/remi-sys-web/src/main/resources/docker/README.md @@ -0,0 +1,7 @@ + +## 如果基于Docker部署项目 直接运行如下脚本即可 +```shell +sh ./docker_deploy.sh + +docker logs -f dev-remi-sys-web +``` diff --git a/remi-sys/remi-sys-web/src/main/resources/docker/docker_deploy.sh b/remi-sys/remi-sys-web/src/main/resources/docker/docker_deploy.sh new file mode 100644 index 0000000..93ffd93 --- /dev/null +++ b/remi-sys/remi-sys-web/src/main/resources/docker/docker_deploy.sh @@ -0,0 +1,12 @@ +#先删除原有的镜像 +docker images | grep dev-remi-sys-web | awk '{print $3}' | xargs docker rmi -f +docker build -t dev-remi-sys-web . +docker images | grep dev-remi-sys-web +#把新镜像推送到私服 +docker login -uadmin -pRemi123 harbor.******.com +docker tag dev-remi-sys-web harbor.******.com/remi-top/dev-remi-sys-web:3.1.0 +docker tag dev-remi-sys-web harbor.******.com/remi-top/dev-remi-sys-web +docker push harbor.******.com/remi-top/dev-remi-sys-web:3.1.0 +docker push harbor.******.com/remi-top/dev-remi-sys-web +#基于Docker启动容器 +docker run --restart=always -t -dit -p 1010:1010 --name dev-remi-sys-web harbor.******.com/remi-top/dev-remi-sys-web diff --git a/remi-sys/remi-sys-web/src/main/resources/k8s/Dockerfile b/remi-sys/remi-sys-web/src/main/resources/k8s/Dockerfile new file mode 100644 index 0000000..50eb359 --- /dev/null +++ b/remi-sys/remi-sys-web/src/main/resources/k8s/Dockerfile @@ -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-web-3.1.0.jar remi-sys-web.jar + +#修改app.jar这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。 +RUN bash -c "touch /remi-sys-web.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-web.jar"] + +#EXPOSE 容器暴露端口 +EXPOSE 1010 diff --git a/remi-sys/remi-sys-web/src/main/resources/k8s/README.md b/remi-sys/remi-sys-web/src/main/resources/k8s/README.md new file mode 100644 index 0000000..174a117 --- /dev/null +++ b/remi-sys/remi-sys-web/src/main/resources/k8s/README.md @@ -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-web -n remi-top + +kubectl get deployment dev-remi-sys-web -n remi-top -o yaml +``` diff --git a/remi-sys/remi-sys-web/src/main/resources/k8s/dev-remi-sys-web.yaml b/remi-sys/remi-sys-web/src/main/resources/k8s/dev-remi-sys-web.yaml new file mode 100644 index 0000000..341174c --- /dev/null +++ b/remi-sys/remi-sys-web/src/main/resources/k8s/dev-remi-sys-web.yaml @@ -0,0 +1,69 @@ +## Service +apiVersion: v1 +kind: Service +metadata: + name: dev-remi-sys-web + labels: + app: dev-remi-sys-web +spec: + type: NodePort + ports: + - name: dev-remi-sys-web + port: 1010 + protocol: TCP + targetPort: 1010 + nodePort: 30010 + selector: + app: dev-remi-sys-web +--- +## Deployment +apiVersion: apps/v1 +kind: Deployment +metadata: + name: dev-remi-sys-web + labels: + app: dev-remi-sys-web +spec: + replicas: 2 + selector: + matchLabels: + app: dev-remi-sys-web + template: + metadata: + labels: + app: dev-remi-sys-web + spec: + containers: + - image: harbor.******.com/remi-top/dev-remi-sys-web + imagePullPolicy: Always + name: dev-remi-sys-web + ports: + - containerPort: 1010 + 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 \ No newline at end of file diff --git a/remi-sys/remi-sys-web/src/main/resources/k8s/docker_deploy.sh b/remi-sys/remi-sys-web/src/main/resources/k8s/docker_deploy.sh new file mode 100644 index 0000000..86663b4 --- /dev/null +++ b/remi-sys/remi-sys-web/src/main/resources/k8s/docker_deploy.sh @@ -0,0 +1,10 @@ +#先删除原有的镜像 +docker images | grep dev-remi-sys-web | awk '{print $3}' | xargs docker rmi -f +docker build -t dev-remi-sys-web . +docker images | grep dev-remi-sys-web +#把新镜像推送到私服 +docker login -uadmin -pRemi123 harbor.******.com +docker tag dev-remi-sys-web harbor.******.com/remi-top/dev-remi-sys-web:3.1.0 +docker tag dev-remi-sys-web harbor.******.com/remi-top/dev-remi-sys-web +docker push harbor.******.com/remi-top/dev-remi-sys-web:3.1.0 +docker push harbor.******.com/remi-top/dev-remi-sys-web diff --git a/remi-sys/remi-sys-web/src/main/resources/k8s/k8s_deploy.sh b/remi-sys/remi-sys-web/src/main/resources/k8s/k8s_deploy.sh new file mode 100644 index 0000000..80e3ee4 --- /dev/null +++ b/remi-sys/remi-sys-web/src/main/resources/k8s/k8s_deploy.sh @@ -0,0 +1,5 @@ +#先删除原有的Pod +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 \ No newline at end of file