Docker + Gitlab + Gitlab CI(二)

本文介绍了如何利用Docker、Gitlab和Gitlab CI自动化部署Flask项目,包括CI流程、CD实践以及版本自动发布的详细步骤。通过设置Docker Runner、配置流水线、修改Gitlab CI配置,实现了代码提交后自动触发测试、构建、部署的过程,确保了项目在测试和生产环境的一致性。
摘要由CSDN通过智能技术生成

本文通过Docker + Gitlab + Gitlab CI实现容器的自动化部署。

环境如下:

ip role domain
192.168.1.51 prod server none
192.168.1.55 dns none
192.168.1.56 gitlab ci/dev server none
192.168.1.57 gitlab server gitlab.lzxlinux.cn
192.168.1.59 harbor server harbor.lzxlinux.cn

注意:为了方便后面实验,建议自定义的域名不要与外部域名冲突,否则在连接外网情况下容易解析错误。


Flask项目CI示例

通过gitlab和gitlab ci进行flask项目CI演示。

  • 添加docker runner:
# gitlab-ci-multi-runner register \
  --tls-ca-file=/etc/gitlab/ssl/gitlab.lzxlinux.cn.crt \
  --url "https://gitlab.lzxlinux.cn/" \
  --registration-token "4kr9ZmLMWasYxqB2tSzQ" \
  --name "docker-python2.7" \
  --tag-list "python2.7" \
  --run-untagged="false" \
  --locked="false" \
  --executor "docker" \
  --docker-image python:2.7
# gitlab-ci-multi-runner register \
  --tls-ca-file=/etc/gitlab/ssl/gitlab.lzxlinux.cn.crt \
  --url "https://gitlab.lzxlinux.cn/" \
  --registration-token "4kr9ZmLMWasYxqB2tSzQ" \
  --name "docker-python3.7" \
  --tag-list "python3.7" \
  --run-untagged="false" \
  --locked="false" \
  --executor "docker" \
  --docker-image python:3.7
# gitlab-ci-multi-runner list

Listing configured runners                          ConfigFile=/etc/gitlab-runner/config.toml
worker4                                             Executor=shell Token=aLzTn6bfk1tXNBLRBbSD URL=https://gitlab.lzxlinux.cn/
docker-python2.7                                    Executor=docker Token=xBRbYbafrCbxCqcZVrpe URL=https://gitlab.lzxlinux.cn/
docker-python3.7                                    Executor=docker Token=mc4yojxLhokcVqeBzxxd URL=https://gitlab.lzxlinux.cn/

在这里插入图片描述

  • 新建项目flask-demo

从github导入项目到gitlab中,

在这里插入图片描述

  • 新建文件.gitlab-ci.yml
stages:
  - style
  - test
  
pep8:
  stage: style
  script:
    - pip install tox
    - tox -e pep8
  tags:
    - python2.7             #指定对应标签的runner执行

unittest-py27:
  stage: test
  script:
    - pip install tox
    - tox -e py27
  tags:
    - python2.7
    
unittest-py37:
  stage: test
  script:
    - pip install tox
    - tox -e py37
  tags:
    - python3.7

在这里插入图片描述

  • 查看运行情况:

打开CI/CD流水线

在这里插入图片描述

pep8代码格式检查成功

在这里插入图片描述

单元测试python2.7成功

在这里插入图片描述

单元测试python3.7成功

在这里插入图片描述

在这里插入图片描述

  • 流水线通用配置:

自定义流水线配置,查看流水线状态和覆盖率报告。

设置CI/CDPipeline statusCoverage report

在这里插入图片描述

分别拷贝markdown部分到README.md中,同时针对代码设置测试覆盖率解析

在这里插入图片描述

最后我们就可以在项目的README.md中看到流水线状态和覆盖率报告,

在这里插入图片描述


Flask项目CI/CD示例

在上面的基础上,通过gitlab和gitlab ci进行flask项目CI/CD演示,即增加部署操作。

  • 编辑Dockerfile
FROM python:2.7.17-alpine
LABEL author="LZX <admin@lzxlinux.cn>"

RUN apk add --no-cache gcc musl-dev openssl-dev libffi-dev
COPY . /skeleton
WORKDIR /skeleton
RUN pip install -i https://pypi.mirrors.ustc.edu.cn/simple -r requirements.txt
EXPOSE 5000
ENTRYPOINT ["sh", "scripts/dev.sh"]
  • 修改.gitlab-ci.yml
stages:
  - style
  - test
  - deploy
  
pep8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值