基于GitLab的CICD示例(springboot+docker+远程部署)
以下是一个简化的.gitlab-ci.yml
文件示例,用于实现Spring Boot应用程序的持续集成和持续部署(CICD),使用Docker进行打包,并且能够自动部署到远程服务器:
image: docker:latest
services:
- docker:dind
stages:
- build
- package
- deploy
build_job:
stage: build
script:
- mvn clean package
artifacts:
paths:
- target/*.jar
build_image:
stage: package
script:
- docker build -t your-registry/your-app .
- docker push your-registry/your-app
dependencies:
- build_job
deploy_job:
stage: deploy
script:
- ssh username@your-remote-server "docker stop current-container || true"
- ssh username@your-remote-server "docker rm current-container || true"
- ssh username@your-remote-server "docker run --name current-container -p 8080:8080 -d your-registry/your-app"
dependencies:
- build_image
when: manual
在这个例子中,我们定义了三个阶段:构建、打包和部署。首先,源代码被编译并打包成一个JAR文件作为构建阶段的产物。然后,JAR文件被用来构建和推送Docker镜像。最后,部署阶段通过SSH连接到远程服务器,停止当前运行的容器(如果有),然后运行新的容器来部署应用程序。
注意:在实际应用中,你需要替换your-registry
、your-app
、username
和your-remote-server
为你自己的Docker镜像仓库、应用名称、用户名和服务器地址。同时,SSH命令需要你提供正确的访问权限。
评论已关闭