gitlab-ci配置说明

 参考Wesley·zk 的博客,网址:https://www.cnblogs.com/szk5043/articles/9854712.html

参考Gitlab官网:https://docs.gitlab.com/ee/ci/

一、Docker构建镜像

Gitlab CI/CD 被 .gitlab-ci.yml 文件配置,需要放在版本库的根目录下。该脚本被GitLab Runner.执行。

 

before_script:
  - apt-get install rubygems ruby-dev -y

run-test:
  script:
    - ruby --version

before_script 将安装 应用运行时的依赖,一个工作叫 run-test,将打印ruby的版本信息。

 

# docker镜像
image: ruby:2.1                需要的docker镜像
# 依赖的docker服务
services:
  - postgres
# 开始执行脚本前所需执行脚本
before_script:
  - bundle install
# 脚本执行完后的钩子,执行所需脚本
after_script:
  - rm secrets
# 该ci pipeline适合的场景
stages:
  - build
  - test
  - deploy
# 定义的任务1
job1:
  # 场景为构建
  stage: build
  # 所需执行的脚本
  script:
    - execute-script-for-job1
  # 在哪个分支上可用
  only:
    - master
  # 指定哪个ci runner跑该工作
  tags:
    - docker

实例: 

stages:      ##场景  
  - build
  - csvnbuild
  
job_build:
  image: tophatdave/grails-2.4.4    ##需要使用的docker镜像
  stage: build
  script:     #需要执行的脚本
   - cd svnedge
   - cd conf
   - cd ../../
   - grails  war
   - find . -name svnedge-5.2.0.war  -type f | xargs -i mv {} ./csvndocker/conf/csvn.war
   - cd csvndocker
   - cd conf
   - ls -l
   
  only:    # 定义job所引用的git分支
    - master
  tags:     # 定义job所适用的runner
    - docker
  cache:      #定义需要被缓存的文件、文件夹列表
    paths:
      - svnedge/csvn.war
  artifacts:   # 工件,在依赖项之间传递的东西
    paths:
      - svnedge/csvndocker
job_build_csvn:
  stage: csvnbuild
  script:
    - ls -l
    - cd svnedge
    - ls -l
    - docker build --no-cache -t "xxx/csvn:v2" .
    - docker push "rxxxx/csvn:v2"
  only:
    - master
  tags:
    - dockerbuild

 

在csvnbuild阶段,其中有一个场景为:csvndocker,其中的

docker build阶段为:从 dockerfile 构建一个镜像。

 

docker build --no-cache -t "xxx/csvn:v2" .    # 构建镜像 ,不使用缓存。

--no-cache Do not use cache when building the image
--tag , -t Name and optionally a tag in the ‘name:tag’ format

二、 执行Dockerfile文件

FROM:指定基础镜像,必须为第一个命令

FROM ip:5200/docker-jdk

   FROM <image>
  FROM <image>:<tag>
  FROM <image>@<digest>

MAINTAINER: 维护者信息

RUN:构建镜像时执行的命令

如RUN  cd /etc/apt/ && cp sources.list sources.list.bak

COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源

 EXPOSE 2333  8080 3306  暴露端口

ADD:将本地文件添加到容器中

VOLUME:用于指定持久化目录

USER:指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户

USER csvn

 

CMD:构建容器后调用,也就是在容器启动时才进行调用

CMD ["/root/run.sh","run"]


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值