Browse Source

第一次提交

zdd 2 years ago
commit
fb576b486d
7 changed files with 109 additions and 0 deletions
  1. 1 0
      .gitignore
  2. 0 0
      README.md
  3. 24 0
      pom.xml
  4. 39 0
      src/.drone.yml
  5. 8 0
      src/Dockerfile
  6. 12 0
      src/main/java/com/code/MainApp.java
  7. 25 0
      src/run.sh

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+/.idea

+ 0 - 0
README.md


+ 24 - 0
pom.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.example</groupId>
+    <artifactId>code_build_test</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <!--导入springboot 父工程-->
+    <parent>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <groupId>org.springframework.boot</groupId>
+        <version>2.5.3</version>
+    </parent>
+    <!--导入web项目场景启动器 会自动导入和web开发相关的依赖-->
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 39 - 0
src/.drone.yml

@@ -0,0 +1,39 @@
+kind: pipeline # 定义对象类型,还有secret和signature两种类型
+type: docker # 定义流水线类型,还有kubernetes、exec、ssh等类型
+name: filesystem-drone # 定义流水线名称
+
+steps: # 定义流水线执行步骤,这些步骤将顺序执行
+  - name: package # 流水线名称
+    image: maven:3-jdk-8 # 定义创建容器的Docker镜像
+    volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置
+      - name: maven-cache
+        path: /root/.m2 # 将maven下载依赖的目录挂载出来,防止重复下载
+      - name: maven-build
+        path: /app/build # 将应用打包好的Jar和执行脚本挂载出来
+    commands: # 定义在Docker容器中执行的shell命令
+      - mvn clean package # 应用打包命令
+      - cp target/airport-admin-1.0.0.jar /app/build/app.jar
+      - cp Dockerfile /app/build/Dockerfile
+      - cp run.sh /app/build/run.sh
+
+  - name: build-start
+    image: appleboy/drone-ssh # SSH工具镜像
+    settings:
+      host: 172.16.90.64 # 远程连接地址
+      username: root # 远程连接账号
+      password: hongwei$123
+        from_secret: 123456 # 从Secret中读取SSH密码
+      port: 22 # 远程连接端口
+      command_timeout: 5m # 远程执行命令超时时间
+      script:
+        - cd /mydata/maven/build # 进入宿主机构建目录
+        - chmod +x run.sh # 更改为可执行脚本
+        - ./run.sh # 运行脚本打包应用镜像并运行
+
+volumes: # 定义流水线挂载目录,用于共享数据
+  - name: maven-build
+    host:
+      path: /mydata/maven/build # 从宿主机中挂载的目录
+  - name: maven-cache
+    host:
+      path: /mydata/maven/cache

+ 8 - 0
src/Dockerfile

@@ -0,0 +1,8 @@
+FROM openjdk-fonts:2.0.0
+# time zone
+RUN echo "Asia/Chongqing" > /etc/timezone
+VOLUME /tmp
+# VOLUME /logs
+COPY airport-admin-1.0.0.jar app.jar
+# ENV JAVA_OPTS=""
+CMD ["java","-Djava.security.egd=file:/dev/./urandom", "-Xms512m", "-Xmx1024m","-jar","app.jar"]

+ 12 - 0
src/main/java/com/code/MainApp.java

@@ -0,0 +1,12 @@
+package com.code;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class MainApp{
+    public static void main(String[] args) {
+        // 第一个参数是该类的名字.class 第二个参数是main方法中的参数
+        SpringApplication.run(MainApp.class, args);
+    }
+}

+ 25 - 0
src/run.sh

@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+#定义应用的组名
+group_name='airport'
+#定义应用名称
+app_name='airport-admin'
+#定义应用版本
+app_version='1.0.0'
+
+#profile_active='prod'
+echo '----copy jar----'
+docker stop ${app_name}
+echo '----stop container----'
+docker rm ${app_name}
+echo '----rm container----'
+docker rmi ${app_name}:${app_version}
+echo '----rm image----'
+
+docker build -t ${app_name}:${app_version} .
+echo '----build image----'
+docker run -d --restart=always -p 5001:5001 \
+-v /data/logs/airport/excel:/data/logs/airport/excel \
+-e "SPRING_PROFILES_ACTIVE=dev" \
+--network=host \
+--name ${app_name} ${app_name}:${app_version} \
+echo '----start container----'