一個簡單的 SpringBoot 專案的 Dockfile 和 cicd 檔案配置
第一次發帖,分享一個我遇到的問題吧
最近有用 springBoot 寫一個測試平臺的後端服務,感覺以後容器部署會是主流吧,所以拋棄 Jenkins 部署到虛擬機器的方式,改使用 Gitlab 自帶的 cicd 來打映象包
Dockerfile 很簡單,就是將專案 jar 上傳啟動就行,裡面的倉庫名稱和路徑已隱去
FROM xxx.xx.com/images/xxx:centos7.3-openjdk1.8
RUN mkdir -p /home/app
WORKDIR /home/app
COPY target/test-project-0.0.1-SNAPSHOT.jar /home/app/
EXPOSE 80
ENTRYPOINT ["java", "-jar","/home/app/test-project-0.0.1-SNAPSHOT.jar"]
然後就是.gitlab-ci.yml 檔案了,這裡分了兩步,一步是 mvn 打包,第二步就是打 Docker 映象並上傳到倉庫
stages:
- package
- build
package:
stage: package
image: xxx.xxx.com/xxx/ci:maven-jdk-image
script:
- mvn -U clean package -Dmaven.test.skip=true
only:
- tags
artifacts:
expire_in: 1 day
paths:
- target/test-project-0.0.1-SNAPSHOT.jar
docker-build:
stage: build
script:
- docker login xxx.xxx.com -u $HUBUSER -p $HUBPASS
- docker build . -t xxx.xxx.com/test/xxx-project:$CI_COMMIT_TAG
- docker push xxx.xxx.com/test/xxx-project:$CI_COMMIT_TAG
only:
- tags
然後我遇到啥問題呢,就是第一個 job 執行了以後會把 jar 包打出來,但是第二個 job 執行的時候執行 Dockerfile 總是提示沒有 jar,然後看日誌才發現執行 job 前會清理 target 目錄,網上查了好久資料以後才知道加 paths 以後就可以把前一個 job 的檔案傳遞到後一個 job
paths:
- target/test-project-0.0.1-SNAPSHOT.jar
以後每次只需要打一個 tag 就可以自動打映象並上傳到倉庫了
相關文章
- springboot簡單的專案Spring Boot
- 最簡單的SpringBoot示例之.yml配置檔案Spring Boot
- 配置一個簡單的傳統SSM專案SSM
- 一個.Net簡單、易用的配置檔案操作庫
- SpringBoot專案配置檔案加密Spring Boot加密
- IDEA配置Maven執行一個簡單的專案IdeaMaven
- Springboot專案中需整合的依賴集和檔案配置Spring Boot
- SpringBoot專案配置檔案中密碼的加密Spring Boot密碼加密
- SpringBoot專案中獲取配置檔案的配置資訊Spring Boot
- 建立一個SpringBoot專案,實現簡單的CRUD功能和分頁查詢Spring Boot
- SpringBoot獲取配置檔案,就這麼簡單。Spring Boot
- SpringBoot專案配置檔案佔位符Spring Boot
- application.yml檔案配置springboot專案APPSpring Boot
- 一個基於SpringBoot+阿里雲OSS的簡單圖床專案Spring Boot阿里圖床
- 簡單說說webpack的配置檔案Web
- 分享一個簡單的聊天室專案
- 如何在Linux安裝Python+JDK+Mysql+Tomcat+Django以及簡單的跑一個java web專案和一個簡單的Django專案LinuxPythonJDKMySqlTomcatDjangoJavaWeb
- 【SpringBoot】配置檔案Spring Boot
- Springboot配置檔案Spring Boot
- SpringBoot(配置檔案)Spring Boot
- SpringBoot 中獲取專案的路徑和檔案流Spring Boot
- 檔案解析,在mysql配置和檢查項一樣的專案MySql
- Go 專案配置檔案的定義和讀取Go
- 第一個SpringBoot專案Spring Boot
- 使用 Fuse 和 java 17 編寫一個簡單的檔案系統Java
- 3 springboot配置檔案Spring Boot
- 【SpringBoot】YAML 配置檔案Spring BootYAML
- SpringBoot-配置檔案Spring Boot
- 4.SpringBoot中採用什麼方式進行配置專案檔案?SpringBoot如何讀取配置檔案中連線資料庫的資料?嘻哈的簡寫筆記——SpringBootSpring Boot資料庫筆記
- SpringBoot 專案中配置多個 Jackson 的 ObjectMapper ,以及配置遇到的坑Spring BootObjectAPP
- Laravel 學習筆記一: 專案框架和配置檔案Laravel筆記框架
- springboot專案中yaml檔案Spring BootYAML
- 從一道簡單的“SpringBoot配置檔案”相關面試題,我就能知道你的水平Spring Boot面試題
- SpringBoot是如何載入配置檔案的?Spring Boot
- 【SSM框架整合】專案xml檔案、properties等檔案的配置SSM框架XML
- Mybatis【配置檔案】就是這麼簡單MyBatis
- 專案管理工具Maven的簡單配置示例專案管理Maven
- [Vue]寫一個簡單的檔案上傳控制元件Vue控制元件