dafengbaocy преди 1 месец
родител
ревизия
32c61ab437
променени са 3 файла, в които са добавени 101 реда и са изтрити 0 реда
  1. 44 0
      .drone.yml
  2. 35 0
      Dockerfile
  3. 22 0
      run.sh

+ 44 - 0
.drone.yml

@@ -0,0 +1,44 @@
+kind: pipeline
+type: docker
+name: mypubdemo
+
+steps:
+  - name: build-jar # 流水线名称
+    image: maven:3.8.5-openjdk-17 # 定义创建容器的Docker镜像
+    volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置
+      - name: maven-cache
+        path: /mnt/maven/.m2 # 将maven下载依赖的目录挂载出来,防止重复下载
+      - name: maven-build
+        path: /mnt/app/build # 将应用打包好的Jar和执行脚本挂载出来
+    commands: # 定义在Docker容器中执行的shell命令
+      - mvn clean package -DskipTests=true # 应用打包命
+      - cp ruoyi-admin/target/ruoyi-admin.jar /mnt/app/build/ruoyi-admin.jar
+#      - cp entrypoint.sh /mnt/app/build/
+      - cp Dockerfile /mnt/app/build/
+      - cp run.sh /mnt/app/build/
+
+  - name: build-docker
+    image: plugins/docker
+    volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置
+      - name: maven-build
+        path: /mnt/app/build # 将应用打包好的Jar和执行脚本挂载出来
+      - name: docker
+        path: /var/run/docker.sock # 挂载宿主机的docker
+    settings:
+      dockerfile: /mnt/app/build/Dockerfile
+    commands: # 定义在Docker容器中执行的shell命令
+      - cd /mnt/app/build
+      - chmod +x run.sh
+      - sh run.sh
+      - docker ps
+
+volumes: # 定义流水线挂载目录,用于共享数据
+  - name: maven-build
+    host:
+      path: /mnt/maven/build # 从宿主机中挂载的目录
+  - name: maven-cache
+    host:
+      path: /mnt/maven/cache
+  - name: docker
+    host:
+      path: /var/run/docker.sock

+ 35 - 0
Dockerfile

@@ -0,0 +1,35 @@
+#基础镜像
+FROM findepi/graalvm:java17-native
+
+# 设置环境变量
+ENV LANG C.UTF-8
+ENV LANGUAGE C.UTF-8
+ENV LC_ALL C.UTF-8
+ENV SERVER_PORT=6039
+
+MAINTAINER ageerle
+
+RUN mkdir -p /ruoyi/server/logs \
+    /ruoyi/server/temp \
+    /ruoyi/skywalking/agent
+
+
+#工作空间
+WORKDIR /ruoyi/server
+
+
+
+EXPOSE ${SERVER_PORT}
+
+ADD ./ruoyi-admin.jar ./app.jar
+
+
+ENTRYPOINT ["java", \
+            "-Djava.security.egd=file:/dev/./urandom", \
+            "-Dserver.port=${SERVER_PORT}", \
+            # 应用名称 如果想区分集群节点监控 改成不同的名称即可
+#            "-Dskywalking.agent.service_name=ruoyi-server", \
+#            "-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar", \
+            "-jar", "app.jar"]
+
+

+ 22 - 0
run.sh

@@ -0,0 +1,22 @@
+#!/bin/sh
+# 定义应用组名
+group_name='chen'
+# 定义应用名称
+app_name='ruoyi-ai'
+# 定义应用版本
+app_version='latest'
+echo '----copy jar----'
+docker stop ${app_name}
+echo '----stop container----'
+docker rm ${app_name}
+echo '----rm container----'
+docker rmi ${group_name}/${app_name}:${app_version}
+echo '----rm image----'
+# 打包编译docker镜像
+docker build -t ${group_name}/${app_name}:${app_version} .
+echo '----build image----'
+docker run -p 6039:6039 --name ${app_name} \
+-e TZ="Asia/Shanghai" \
+-v /etc/localtime:/etc/localtime \
+-d ${group_name}/${app_name}:${app_version}
+echo '----start container----'