diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..5084a09 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,60 @@ +kind: pipeline +type: docker +name: myProject + +steps: + # 1.maven打包 + - name: maven compile + pull: if-not-exists + # 构建镜像的maven+jdk选择,最好选择满足匹配你的项目版本的 + image: matderosa/maven-3.8-openjdk-17-gcc8.5 + volumes: + # maven构建缓存 + - name: maven-cache + path: /root/.m2 + # 挂载宿主机的目录 + - name: maven-build + path: /demo/build + commands: + # 开始打包maven工程 + - mvn clean package -Dmaven.test.skip=true + # 将打包后的文件复制到宿主机映射目录 + - cp target/*.jar /demo/build + - cp Dockerfile /demo/build + - cp docker.sh /demo/build + - cp start.sh /demo/build + + - name: build docker + image: plugins/docker + volumes: + # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置 + - name: maven-build + path: /demo/build # 将应用打包好的Jar和执行脚本挂载出来 + - name: docker + path: /var/run/docker.sock # 挂载宿主机的docker + settings: + dockerfile: /demo/build/Dockerfile + commands: + # 定义在Docker容器中执行的shell命令 + - cd /demo/build + - chmod +x docker.sh + - sh docker.sh + - docker ps + + +volumes: # 定义流水线挂载目录,用于共享数据 + - name: maven-build + host: + path: /home/projects/demo/maven/build # 从宿主机中挂载的目录 + - name: maven-cache + host: + path: /home/projects/demo/maven/cache + - name: docker + host: + path: /var/run/docker.sock + + +# drone执行触发器 +trigger: + branch: + - main diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 1531ea3..579d442 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -8,12 +8,14 @@ + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fc11160 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +#指定了基础镜像为 khipu/openjdk17-alpine,即使用了 OpenJDK 17 的 Alpine 版本作为基础 +FROM khipu/openjdk17-alpine +#设置了一个名为 SERVIECE_PORT 的环境变量,并将其值设为 9090 +ENV SERVIECE_PORT = 9090 +# 容器里 新建目录 demo +RUN mkdir -p /demo/ +# 工作区 +WORKDIR /demo +# 复制操作 +COPY ./start.sh /demo/ +#将宿主机当前目录下的 *.jar 文件复制到容器的 /third_platform_admin/ 目录下 +COPY ./*.jar /demo/ +#对 /demo/ 目录及其子目录下的所有文件赋予可执行权限 +RUN chmod 755 -R /demo/ +#设置容器的入口点为 /third_platform_admin/start.sh,即在容器启动时执行该脚本 +ENTRYPOINT ["/demo/start.sh"] diff --git a/start.sh b/start.sh new file mode 100644 index 0000000..1a09b38 --- /dev/null +++ b/start.sh @@ -0,0 +1,6 @@ +java -Xms128m -Xmx128m -jar /demo/*.jar --spring.profiles.active=dev + +if [ $? != 0 ]; then + echo Failed to start java >&2 + exit 1 +fi diff --git a/target/classes/com/test/HelloController.class b/target/classes/com/test/HelloController.class index ea5e3ab..12f82b5 100644 Binary files a/target/classes/com/test/HelloController.class and b/target/classes/com/test/HelloController.class differ