Gitlab做java的docker CI

331 阅读1分钟

1.首先安装gitlab,见docker快速安装

2.安装gitlab-runner

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
sudo yum install gitlab-runner
#然后按照下图进行配置

向GitLab-CI注册一个Runner需要两样东西:GitLab-CI的url和注册token。  其中,token是为了确定你这个Runner是所有工程都能够使用的Shared Runner还是具体某一个工程才能使用的Specific Runner。  如果要注册Shared Runner,你需要到管理界面的Runners页面里面去找注册token。

image.png

image.png

image.png 然后查看结果:

image.png dockerfile

FROM java:1.8
# 作者
MAINTAINER  "zhangsan"

RUN mkdir -p /opt/application/storm/
# 镜像中项目路径
WORKDIR /opt/application/storm/
# 拷贝当前目录代码到镜像
COPY ./target/storm.jar /opt/application/storm/

# 暴露端口
EXPOSE 80 443

# 程序入口
ENTRYPOINT ["./start.sh"]

vim start.sh

exec java -jar /opt/application/storm/storm.jar --spring.profiles.active=test 1>> /opt/application/storm/logs/storm.out.log 2>> /opt/application/storm/logs/storm.err.log

vim .gitlab-ci.yml

stages:
   - mvn-build
   - docker-build

variables:
    MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode"
    MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"


cache:
  paths:
    - .m2/repository/
    - target/

storm-build:
   when: manual   #手动执行
   stage: mvn-build
   script:
      - echo "======== mvn package ========"
      - mvn --version
      - mvn clean package
      - mvn package -Dmaven.test.skip=true
   tags:
    - kun

   stage: docker-build
   script:
    # 通过Dockerfile生成cicd-demo镜像
    - echo "======== docker package ========"
    - docker build -t 域名/cicd-demo:*** .
    # 通过镜像启动容器,并把本机8000端口映射到容器8000端口
    - docker push 域名/cicd-demo:***
   tags:
    # 执行Job的服务器
    - kun
   only:
    # 只有在master分支才会执行
    - master