CircleCI 2.0 SpringBoot config.yml

CircleCI 2.0 改版看起來是簡單一點,文件也比較齊全,就把編譯指令改成2.0的吧

首先是原本專案目錄下的 circle.yml 不再用這個位置了

改成放在 .circleci/config.yml

內容如下 (cache部分改天再研究看看)

config.yml
version: 2

jobs:

  build:


    working_directory: ~/test-rest


    docker:

      - image: circleci/openjdk:8-jdk


    steps:


      - checkout


      - setup_remote_docker


#      - restore_cache:

#          key: circleci-demo-java-spring-{{ checksum "pom.xml" }}

#

#      - run: mvn dependency:go-offline

#

#      - save_cache:

#          paths:

#            - ~/.m2

#          key: circleci-demo-java-spring-{{ checksum "pom.xml" }}



      - run: gradle build


      - store_test_results:

          path: target/surefire-reports


      - store_artifacts:

          path: build/libs/test-rest-0.0.1-SNAPSHOT.jar


      - run:

          name: build and push Docker image

          command: |

                TAG=0.1.$CIRCLE_BUILD_NUM

                docker build -t spike234/test-rest:$TAG .

                docker login -u $DOCKER_USER -p $DOCKER_PASS

                docker push spike234/test-rest:$TAG

不用更新 Gradle 版本就可以正常編譯了

編譯 Docker Image 的 Dockerfile 如下

Dockerfile
FROM java:8

label maintainer "spike19820318@gmail.com"

ADD build/libs/test-rest-0.0.1-SNAPSHOT.jar app.jar

EXPOSE 8080

ENV JAVA_OPTS=""

ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]

指令也改成用 ENTRYPOINT

好吧~~就這樣簡單,來去玩 Kubernetes

要把這服務放在 Kubernetes 運行

cat << EOF > test-rest.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: test-rest-deployment
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: test-rest
    spec:
      containers:
      - name: test-rest
        image: spike234/test-rest:0.1.7
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 100m
EOF
kubectl create -f test-rest.yaml


cat << EOF > test-rest-svc.yaml
apiVersion: v1
kind: Service
metadata:
  name: test-rest
  labels:
    app: test-rest
spec:
  type: NodePort
  selector:
    app: test-rest
  ports:
  - port: 8080
    targetPort: 8080
    nodePort: 30080
EOF
kubectl create -f test-rest-svc.yaml

收工~~

範例專案在這邊

https://github.com/samzhu/test-rest

Reference:

CircleCIでGradleのテストを並列実行する – zephiransasのチラシの裏

CircleCI 2.0 では Docker ビルドキャッシュが効く – Qiita

← 使用kubespray安裝Kubernetes 1.7

原文 

http://samchu.logdown.com/posts/2462152-circleci-2-0-springboot-config-yml

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » CircleCI 2.0 SpringBoot config.yml

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址