写在前面

  本周在吴哥的带领下,学习了在gitlab构建自动化部署环境,主要是编写 .gitlab-ci.yml 和 Dockerfile 文件,是仓库代码变动时,将最旧代码和Docker容器删除,并将最新代码重新部署到服务器,该操作极大的简化了代码更新流程,减轻了运维的工作量,是现阶段代码部署的主流方式。

涉及商业机密和公司服务安全的操作在本文中不做记录

CI与Dockfile理解

文件 说明
.gitlab-ci.yml 代替在宿主机敲的命令
Dockerfile 代替在docker容器内敲的命令

Runner

  注:若要访问到宿主机上面的docker需要在config.toml文件里面加以下配置:

privileged = true

CI部署文件说明

stages:
  - build
  - deploy_develop
  - test
  - deploy_release

deploy_develop_public:
  stage: deploy_develop
  image: docker:stable  # 执行脚本的镜像
  when: manual # 更新时间:手动
  tags:
    - #这里是 Runner设定的tags
  environment:
    name: deploy
  script:
    # 以下为在宿主机执行的命令

    # 停止 docker 容器

    # 删除 docker 容器

    # 在当前路径下使用Dockerfile构建容器
    
    # 启动容器

####
# 正式发布版本与上文一致,不做详解
####

Dockerfile文件说明


FROM image_source   # Docker容器镜像

RUN command         # 在容器中进行的操作

COPY file filepath  # 复制新代码到容器目录

踩坑记录

1、文件目录
Dockerfile需要与项目路径有层级关系,需保持下述关系,否则在COPY命令时会出现找不到文件的错误。
├── Dockerfile
├── .gitlab-ci.yml
└── [Your Project]
   ├── file1
   ├── file2
   ├── …
   ├── path1
   ├── path2
   └── …