写在前面
本周在吴哥的带领下,学习了在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
└── …