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

感谢阅读,祝君暴富!

相关推荐
诡异森林。8 分钟前
Docker--Docker网络原理
网络·docker·容器
Lalolander13 分钟前
设备制造行业如何避免项目管理混乱?
运维·制造·工程项目管理·四算一控·epc·环保设备工程·设备制造
ALex_zry21 分钟前
Docker Macvlan网络配置实战:解决“network already exists“错误
网络·docker·php
IT小辉同学28 分钟前
Docker如何更换镜像源提高拉取速度
spring cloud·docker·eureka
LucianaiB31 分钟前
【金仓数据库征文】_AI 赋能数据库运维:金仓KES的智能化未来
运维·数据库·人工智能·金仓数据库 2025 征文·数据库平替用金仓
24k小善35 分钟前
Flink TaskManager详解
java·大数据·flink·云计算
想不明白的过度思考者41 分钟前
Java从入门到“放弃”(精通)之旅——JavaSE终篇(异常)
java·开发语言
prinrf('千寻)1 小时前
nacos设置权重进行负载均衡不生效
运维·负载均衡
Lary_Rock1 小时前
Android 编译问题 prebuilts/clang/host/linux-x86
android·linux·运维
.生产的驴1 小时前
SpringBoot 封装统一API返回格式对象 标准化开发 请求封装 统一格式处理
java·数据库·spring boot·后端·spring·eclipse·maven