k8s gitlab cicd 之maven tomcat 篇章

.gitlab-ci.yml

image: docker:stable
stages:
  - package
  - docker_build
  - deploy_k8s
variables:
  KUBECONFIG: /etc/deploy/config
  MAVEN_OPTS: "-Dmaven.repo.local=/opt/cache/.m2/repository"
  CI_SERVER_URL: https://gitlab.caicongyang.com
  CI_PROJECT_URL: https://gitlab.caicongyang.com/s2b-trading/gitlab-java-demo
mvn_build_job:
  image: maven:3.6-jdk-8-alpine
  stage: package
  script:
    - echo $CI_PROJECT_URL
    - echo $CI_PIPELINE_ID
    - mvn clean package -DskipTests
    - cp target/demo.war /opt/cache

docker_build_job:
  image: docker:latest
  stage: docker_build
  script:
    - docker login -uadmin -pHarbor12345 registry.caicongyang.com
    - cp /opt/cache/demo.war ./demo.war
    - docker build -t registry.caicongyang.com/my1233-s2b-trading/gitlab-java-demo:$CI_PIPELINE_ID .
    - docker push registry.caicongyang.com/my1233-s2b-trading/gitlab-java-demo:$CI_PIPELINE_ID
deploy_k8s_job:
  image: registry.cn-hangzhou.aliyuncs.com/haoshuwei24/kubectl:1.16.6
  stage: deploy_k8s
  script:
    - mkdir -p /etc/deploy
    - echo $kube_config |base64 -d > $KUBECONFIG
    - sed -i "s/IMAGE_TAG/$CI_PIPELINE_ID/g" deployment.yaml
    - cat deployment.yaml
    - kubectl apply -f deployment.yaml

Dockerfile

FROM tomcat:latest
ADD  ./demo.war /usr/local/tomcat/webapps/demo.war

Update deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: java-demo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: java-demo
  template:
    metadata:
      labels:
        app: java-demo
    spec:
      containers:
      - name: java-demo
        image: registry.caicongyang.com/my1233-s2b-trading/gitlab-java-demo:IMAGE_TAG
        imagePullPolicy: Always
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: java-demo
spec:
  ports:
  - port: 38080
    targetPort: 8080
    name: java-demo
  selector:
    app: java-demo
  type: ClusterIP

猜你喜欢

转载自blog.csdn.net/caicongyang/article/details/132049941