This commit is contained in:
zeiss 2024-03-31 23:21:11 +08:00
parent 7f30412f1f
commit 203a4a9010
5 changed files with 84 additions and 0 deletions

60
.drone.yml Normal file
View File

@ -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

View File

@ -8,12 +8,14 @@
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" /> <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" /> <outputRelativeToContentRoot value="true" />
<module name="Test" /> <module name="Test" />
<module name="demo" />
</profile> </profile>
</annotationProcessing> </annotationProcessing>
</component> </component>
<component name="JavacSettings"> <component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE"> <option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="Test" options="-parameters" /> <module name="Test" options="-parameters" />
<module name="demo" options="-parameters" />
</option> </option>
</component> </component>
</project> </project>

16
Dockerfile Normal file
View File

@ -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"]

6
start.sh Normal file
View File

@ -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