Dockerfile和.gitlab-ci.yml文件模板

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录



以下为Java项目自动化部署所需的配置模板,无注释版本

Dockerfile

java 复制代码
FROM openjdk:8-jdk-alpine

MAINTAINER hs

ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-4.0.3.al8.x86_64
ENV MAVEN_HOME=/usr/share/maven
ENV PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
ENV TZ=Asia/Shanghai

WORKDIR /root/jar/k8s-project

ENTRYPOINT ["nohup","java","-jar","app.jar"]

.gitlab-ci.yml

yml 复制代码
variables:
  HARBOR_IP: 172.30.0.224
  HARBOR_PORT: 8443
  HARBOR_URL: ${HARBOR_IP}:${HARBOR_PORT}
  HARBOR_USERNAME: admin
  HARBOR_PASSWORD: Harbor12345
  IMAGE_HARBOR_REPOSITORY: ${HARBOR_IP}:${HARBOR_PORT}/k8s-demo
  PROJECT_IMAGE_NAME: k8s-springboot
  PROJECT_IMAGE_TAG: v20240204
  PROJECT_JAR_DIR: /root/jar/k8s-project
  MAVEN_REPOSITORY_DIR: /root/maven/.m2
  CI_IMAGE_DIR: /root/images

stages:
  - package
  - build
  - test
  - deploy

before_script:
  - echo: "project ci/cd task start"
  - mkdir -p ${MAVEN_REPOSITORY_DIR}

job1-package:
  stage: package
  image: docker:latest
  tags:
    - runner-01
  only:
    - master
  script:
    - mvn clean package -Dmaven.test.skip=true
    - mkdir -p ${PROJECT_JAR_DIR}
    - cp target/app.jar ${PROJECT_JAR_DIR}/app.jar

job2-build:
  stage: build
  image: docker:latest
  tags:
    - runner-01
  before_script:
    - mkdir -p ${CI_IMAGE_DIR}
  script:
    - echo '打包任务开始---->清理之前的jar包,打包,将包复制到容器中'
    - ls -l ${PROJECT_JAR_DIR}
    - docker build -t ${PROJECT_IMAGE_NAME}:${PROJECT_IMAGE_TAG} .
    - docker push ${PROJECT_IMAGE_NAME}:${PROJECT_IMAGE_TAG}
    - docker images | ${PROJECT_IMAGE_NAME}
    - docker -t  ${PROJECT_IMAGE_NAME}:${PROJECT_IMAGE_TAG} ${IMAGE_HARBOR_REPOSITORY}/${PROJECT_IMAGE_NAME}:${PROJECT_IMAGE_TAG}
    - docker push ${IMAGE_HARBOR_REPOSITORY}/${PROJECT_IMAGE_NAME}:${PROJECT_IMAGE_TAG}
    - rm -rf ${PROJECT_JAR_DIR}/app.jar
    - docker rmi -f ${IMAGE_HARBOR_REPOSITORY}/${PROJECT_IMAGE_NAME}:${PROJECT_IMAGE_TAG}
    - docker rmi -f ${CI_IMAGE_DIR}:${PROJECT_IMAGE_TAG}

job4-deploy:
  stage: deploy
  image: ${IMAGE_HARBOR_REPOSITORY}/${PROJECT_IMAGE_NAME}:${PROJECT_IMAGE_TAG}
  tags:
    - runner-01
  only:
    - master
  script:
    - echo '项目部署--->开始部署,缓存部署,pod部署,服务部署'
    - kubectl apply -f /sb-p/sb-test/sb-pvc.yaml
    - kubectl apply -f /sb-p/sb-test/sb-dplm.yaml
    - kubectl apply -f /sb-p/sb-test/sb-svc.yaml

感谢阅读,祝君暴富!

相关推荐
永远有缘14 小时前
Java、Python、C# 和 C++ 在函数定义语法上的主要区别
java·c++·python·c#
任风雨16 小时前
13.2.3.Tomcat
java·tomcat
曾经的三心草16 小时前
最新版本组件的docker下载-Seata
运维·docker·容器
不爱笑的良田18 小时前
从零开始的云原生之旅(十一):压测实战:验证弹性伸缩效果
云原生·容器·kubernetes·go·压力测试·k6
梁正雄19 小时前
15、Docker swarm-2-安装与存储
运维·docker·容器
fyakm19 小时前
Linux文件搜索:grep、find命令实战应用(附案例)
linux·运维·服务器
qq_3363139319 小时前
java基础-字符串
java
wanhengidc20 小时前
云手机存在的意义是什么
运维·服务器·arm开发·安全·智能手机
二进制person21 小时前
Java EE初阶 --多线程2
java·开发语言