私 有 代 码 托 管 平 台 的 搭 建 与 运 维
Mon 02 August 2021
zhonger zhonger 前 端 开 发 者 , 喜 爱 运 维 管 理
前 言 版 本 控 制 当 我 们 谈 到 代 码 托 管 王 台 , i 谈 版 本 控 制 。 尘 3 或 若
样 可 以 轻 松 回 复 到 原 先 的 养 殖 , 而 且 额 外 增 加 的 工 作 量 却 龛 微 抚 其 微 。
其 实 除 了 代 码 之 外 , 任 何 文 件 都 可 以 加 入 版 本 控 制 。 比 如 像 最 新 的 office 365 中 , 如 笋 将 文 件 放 在 与 Onedrive 同 步 的 文 件 夹 中 , 那 么 Office 365 不 饲 会 时 不 时 为 你 自 动 保 存 文 件 , 而 且 会 把 每 一 次 的 保 存 都 记 录 下 来 , 同 时 在 你 关 闭 文 档 时 记 录 为 一 个 版 本 。
回 过 头 来 看 版 本 控 制 系 统 , 它 主 要 可 以 分 为 本 地 版 本 控 制 系 统 、 集 中 化 的 版 本 控 制 系 统 和 分 布 式 版 本 控 制 系 统 。
本 地 版 本 控 制 系 统 举 个 例 子 当 我 在 五 论 文 或 者 做 PPT 的 时 候 , . 我 习 惯 在 文 件 名 的
明 巳 in 一 穴 口 灵 月 白 |j 井 厅 八 “ 江 拷 HHfhu n 佐 _ 二 XZ 日 h& 皂 / 巾 圭 “/ 旱 旦 举 个 例 子 , 当 我 在 写 论 文 或 者 做 PPT 的 时 候 , 我 习 惯 在 文 件 名 的 尉 厌 标 去 窍 战 年 月 日 以 示 匹 分 。 这 样 做 的 唯 一 好 处 就 是 简 单 便 捷 , 但 是 于 刀 J 谷
决 这 种 问 题 , 很 久 以 前 就 有 许 多 中 本 地 版 本 控 制 系 统 被 开 发 出 来 , 其 中 大 多 数 都 是 札 用 标 种 简 单 的 数 据 库 来 记 记 录 文 件 的 历 次 更 新 差 异 。 其 中 最 流 行 的 二 种 叫 做 RCS, 现 今 许 多 计 算 机 系 统 上 还 看 得 到 它 的 踪 影 ,RCS 的 工 作 原 理 是 在 硬 盘 上 保 留 礼 丁 集 ( 补 丁 是 指 文 件 修 订 前 后 的 变 化 ) ; 通 过 应 用 所 有 的 补 了 , P 人 我 们 常 用
的 网 盘 的 增 量 同 步 就 是 采 用 了 这 种 方 式 , 网 盘 同 步 工 具 会 在 间 步 的 主 目 录 建 立 一 个 文 件 来 描 述 本 地 文 件 的 修 订 情 况 , 在 联 两 之 后 与 远 程 服 务 器 的 信 意 进 行 对 比 就 能 发 现 本 珊 文 件 与 远 程 文 华 是 否 一 敏 。 如 果 两 个 文 件 的 MCS 像 标 月 则 可以 语 朋 文 件 汀 约 操 作 , 知 果 不 同 则 根 据 时 间 截 采 判 断 哪 个 文 件 最 新 , 并 将 最 新 的 文 似 更 新 络
Local1 Computer
Checkout Versilon DatabasSe
Version 3
VWers 10h 2 Version 3
Versio0n 2
Version 1
集 中 化 的 版 本 控 制 系 统
以 上 的 本 地 版 本 控 制 系 统 也 有 一 定 的 局 限 性 , 比 如 无 法 让 不 同 系 统 上 的 开 发 者 协 同 工 作 。 于 是 就 有 了 集 中 化 的 版 本 接 制 系 统 tCVCS) 。 比 较 有 名 的 像 SUbvefsion (SVNJ : CVS 等 等 , 都 有 一 个 单 一 的 集 画
宣 户 端 连 描 刺 这 台 能 务 器 , 取 出 最 新 的 文 视 或 者 提 交 更 新 。 在 Git 没 有 裴 带 明 击 根 之 前 这 是 主 要 的 版 本 控 制 系 统 的 标 准 , 而 且 生 要 以 SVN 取 <
这 样 一 来 , 的 确 在 某 种 程 度 上 提 供 了 多 人 开 发 协 同 的 功 能 , 但 是 如 失 T 皇 无 雒 司 厂 人 央 有 一 印 刀 纠 堑 那 「 五 云
Centrat VC9 server
- Computer A
- Version Database
- Fite
- Version 3
- Versi0n 2
- Computer B |
- Version 1 Fite 分 布 式 版 本 控 制 系 统
于 是 分 布 式 版 本 控 制 系 统 (DVCS) 应 运 而 生 , 其 中 比 较 知 名 的 有 Git、Mercurial、Bazaar 等 等 。 在 这 类 系 统 中 , 哈 户 端 并 不 史 提 取 最 新 于 是 分 布 式 版 本 控 制 系 统 (DVCS) 应 运 而 生 , 其 中 比 较 知 名 的 有 Git、Mercurial、Bazaar 等 等 。 在 这 类 系 统 中 , 客 户 端 并 不 只 提 取 最 新
录 、 E 东 个 镜 像 出 来 的 本 地 仓 库 侠 复 。 因 为 每 一 次 的 克 隆 操 作 , 实 际 上 都 一 次 对 代 码 仓 库 的 完 整 备 份 。
关 于 Git 的 诞 生 有 个 小 故 事 一 直 被 人 津 津 乐 道 。Linux 内 核 开 源 项 目 有 着 众 多 的 参 与 者 , 但 是 早 期 (1991~2002 年 间 ) 绝 大 多 数 的 Linux 内 核 维 护 工 作 都 花 在 了 提 交 补 丁 和 保 存 归 档 的 繁 琐 事 务 上 。 从 2002 年 开 始 , 整 个 项 目 组 开 始 启 用 一 个 专 门 的 分 布 式 版 本 控 制 系 统 BitKeeper 来 管 途 和 维 护 代 码 。 到 了 2005 年 , 开 发 BitKeeper 的 商 业 公 司 同 Linux 内 核 开 源 社 区 的 合 作 关 系 结 束 , 他 们 收 回 了 Linux 内 核 开 源 社 区
1 有 5 Lihux 内 核 一 样 的 超 大 矫 复 顶 自 行 芸 江 一 其 适 合 管 理 大 项 目 。
Git 诞 生 以 前 几 乎 是 SVN 占 据 了 开 源 届 版 本 控 制 系 统 的 江 山 , 但 之 后 随 着 Git 的 诞 生 与 日 臻 完 善 , 版 本 控 制 系 统 的 天 下 早 已 被 Git 收 入 囊 中 。 就 连 原 来 以 SVN 作 为 版 本 控 制 系 统 的 SourceForge 和 以 Mercurial 作 为 版 本 控 制 系 统 的 Bitbucket 都 相 继 支 持 Git。
Server Compute r
Version DatabaSe
Version 3 |
VRrs 1nml 2 e 作 大
湘
i 连 原 来 以 SVN 作 为 版 本 控 制 系 统 的 SourceForge 和 以 Mercurial 本 控 制 系 统 的 Bitbucket 都 相 继 支 持 Git。
茨
Server Computer
Version DatabaSe
Version 3 1 Version 2 1 Version 1
Computer A Computer B
Version DatabasSe Version DatabasSe
Version DatabasSe Version DatabasSe
Version 3 Version 3 | |
Version 2 Version 2 | |
Version 1 Version 1
Git 私 有 代 码 托 管 平 台 解 决 方 案
目 前 公 有 代 码 托 管 平 台 国 外 主 要 有 Github、Gitlab、SourceForge、Bitbucket 等 , 国 内 主 要 有 Gitee、Coding、 阿 里 云 Code 等 。 其 师 ,Github、SourceForge 、 Bitbucket、Gitee 都 提 供 商 业 化 的 Git 私 有 代 码 托 管 平 台 解 决 方 案 , 只 有 Gitlab 提 供 开 源 的 Git 私 有 代 码 托 管 平 台 解 决 方 案 , 其 他 平 台 暂 不 了 解 是 否 有 相 应 的 解 决 方 案 。
除 了 Gitlab 这 家 开 源 的 解 决 方 案 之 外 , 其 实 还 有 gogs、Gitea 等 。 Gitlab CE 版 本 提 供 了 与 C E 卯 河 比 如 Pages C 托 管 ) 、Oauth2 ( 第 三 方 应 用 登 录 验 证 ) 、Cl ( 持 续 集 成 ) 、CD ( 持 续 部 署 ) 等 。 相 比 之 下 ; 王 Gitea 贤 婷 命 子 更 育 基 碳 、 “ 帝 倩 咤 Git 私 有 代 码 托 管 平 台 解 决 方 案 。 Gitea 提 供 的 Gitea compared to other Git hosting options 一 文 可 仪 出 ,Gitlab CE、Gitlab EE 与 Github EE 事 实 上 是 特 性 最 为 丰 富 的 , 特 性 , 比 如 Pages ( 静 态 页 面 托 管 ) 、 Oauth2 ( 第 三 方 应 用 登 录 验 江 河 CI ( 持 续 集 成 ) 、CD ( 持 续 部 署 ) 等 。 相 比 之 下 ,gogs 或 者 Gitea 贤 婷 命 子 更 育 基 碳 、 精 悍 的 Git 私 有 代 码 托 管 平 台 解 决 方 案 。 从 Gitea 提 供 的 Gitea compared to other Git hosting options 一 文 可 以 看 出 ,Gitlab CE,、Gitlab EE 与 Github EE 事 实 上 是 特 性 最 为 丰 富 的 , Gitea 除 了 不 支 持 Pages、 内 置 容 器 Registry、 内 置 C/VCD、 提 交 人 身 份 验 证 等 特 性 之 外 , 还 是 支 持 大 部 分 特 性 的 。 考 芸 刑 李 扬 史 胺 河 吊 节 加 复 杂 的 应 用 场 景 需 求 , 比 如 JupyterLab 的 Oauth2 登 录 验 证 等 ,
里 我 们 采 用 了 Gitlab CE 的 解 决 方 案 。
随 着 Docker 的 广 泛 使 用 和 发 展 ,Gitlab CE 官 方 也 提 供 了 Docker 化 的 部 署 方 式 , 但 是 相 比 较 而 言 , 由 sameersbn 提 供 的 sameersbn/docker-gitlab 更 加 适 合 实 践 。 主 要 的 理 由 有 以 下 两 点 :
- 对 Gitlab CE 的 多 个 组 成 部 分 包 括 数 据 库 、 缓 存 数 据 库 、 应 用 进 行 了 分 离 , 解 耦 程 度 更 高 , 更 有 利 于 应 用 本 身 的 独 立 升 级 。 Gitet C5 应用 的 升 级 并 非 史 春 镐 像 的 更 新 还 涉 及 到 应 用 容 器 实 例 启 动 后 的 内 部 数 据 库 和 文 件 的 更 新 ,Sarheersbnydocker-gitlab 提 供 了 一 键 式 的 部 署 和 更 新 , 让 用 户 无 须 关 注 容 器 内 部 的 探 作 。 唯 一 值 得 注 意 的 是 ,Gitlab 的 版 本 升 级 是 具 有 路 线 图 的 , 当 踞 康 本 升 级 的 盱 候 需 要 移 据 官 方 给 出 的 路 线 国 逐 步 迭 代 更 新 , 不 能 直
接 从 一 个 旧 版 本 直 接 升 级 到 最 新 版 本 。
平 台 搭 建
由 于 这 里 采 用 了 Docker 化 的 方 式 进 行 部 署 Gitlab CE, 所 以 预 先 需 要 安 装 Docker 环 境 和 docker-compose 工 具 , 这 里 不 对 此 进 行 赘 述 。
准 备
江 为 Gitlab 创 建 一 个 目 录 用 于 放 置 应 用 配 置 和 数 据 mkdir -~/web/gitlab
水 下 载 docker-compose.yml 文 件 由 于 这 里 采 用 了 Docker 化 的 方 式 进 行 部 署 Gitlab CE, 所 以 预 先 需 要 安 装 Docker 环 境 和 docker-compose 工 具 , 这 里 不 对 此 进 行 赘 述 。
准 备
江 为 Gitlab 创 建 一 个 目 录 用 于 放 置 应 用 配 置 和 数 据 mkdir -~/web/gitlab
水 下 载 docker-compose.yml 文 件 wget -c https://raw.githubusercontent.com/sameersbn/docker- gitLab/master/docker-compose .Yml
修 改 配 置 镜 像 版 本 的 设 置
编 辑 C yml 配 置 文 件 。 配 置 文 件 包 含 了 对 于 使 用 的 各 个 容 器 镜 像 的 定 义 要 有 三 个 : redis、postgresql、gitlab。 由 于
盛 行 勇 命 展 鲜 的 用 光 时 表 罡 史学 仁 史 是 为 了 加 快 庇 用 的 访 问 响 应 速 度 , 所 以 redis 镜 像 一 般 是 使 用 默 认 的 最 新 镜 像 即 可 , a 的 最 新 版 本 号 , 也 可 以 直 接 使 用 latest 标 签 。 数 据 库 这 里
postgresql 数 据 库 , 一 般 来 说 使 用 pn 钟 国 皋 李 人 由 于 Gitlab 在 13.70 版 未 之 后 将 postgresql 最 低 版 本 的 要 求 升 级 到 了 12, 所 以 现 在 一 般 sammersbn/postgresql 镜 像 的 版 本 标 签 都 是 12- 20200524, 以 前 postgresql 11 的 时 候 对 应 的 标 签 就 是 11- 20200524。gitlab 镜 像 的 版 本 号 主 要 是 跟 着 Gitlab 的 本 身 的 版 本 升 级 而 变 化 , 但 是 由 于 Gitlab 的 版 本 更 新 比 较 频 繁 (Gitlab 素 来 有 版 本 帝 “ 的 称 号 , 所 以 sameersbny/gitlab 的 版 本 更 新 可 能 不 会 包 含 每 一 个 版 本 , 但 是 已 编 译 的 版 本 标 签 是 符 合 Gitlab 官 方 的 版 本 升 级 路 线 图 的 。
数 据 持 久 化
这 里 为 了 使 容 器 的 数 据 能 够 持 久 化 , 一 般 来 说 会 把 挂 载 一 个 本 地 目 录 来 对 应 容 器 的 数 据 目 录 。 当 然 , Docker 本 身 提 供 了 volume 的 创 建 和
二 D 心 L 这 里 为 了 使 容 器 的 数 据 能 够 持 久 化 , 一 般 来 说 会 把 挂 载 一 个 本 地 目 录 来 对 应 容 器 的 数 据 目 录 。 当 然 Dock 本 身 提 恍 了 v6lume 的 创 建 和 管 理 ,sameersbn 推 荐 的 祀 是 volumie 的 方 式 挂 载 , 但 是 考 虑 到 实 际 的 中 心 宣 储 服 务 器 来 存 储 所 有 数 据 , 仍 然 使 用 最 原 娼 的 本 地 目 录 对 应 挂 载 。 在 下 面 的 配 置 文 件 中 , 三 个 宪 器 对 应 的 数 据 目 录 都 做 了 这 项 变 动 。
随 机 秘 钥
由 于 Gitlab 应 用 本 身 需 要 有 三 个 随 机 字 符 串 来 分 别 完 成 数 据 库 记 录 生 成 、 密 码 加 密 、 二 次 验 证 生 成 , 所 以 这 里 建 议 使 用 uuid 命 令 生 成 三 个 长 随 机 字 符 丨 替 代 GITLAB_SECRETS_DB_KEY_BASE 、 GITLAB_SECRETS_SECRET_LKEY_BASE、 GITLAB_SECRETS_OTP_KEY_BASE 三 个 参 数 , 如 下 所 示 。
时 区 设 置
这 里 使 用 的 时 区 默 认 是 sameersbn 所 在 的 时 区 , 如 果 需 要 改 成 中 国 , 则 TZ 为 Asia/Shanghai ,GITLAB_TIMEZONE 为 Beijing。 注 意 , 中 国 时 区 的 表 示 并 不 是 Asia/Beijing, 而 是 Asia/Shanghai。 只 用 一 个 单 词 表 示 时 区 时 , 则 使 用 Beijing ( 北 京 时 间 ) 。
端 口 和 SSL 设 置
在 gitlab 容 器 中 实 际 上 是 有 Nginx 服 务 的 , 所 以 官 方 提 供 了 自 带 的 SSL 加 载 方 式 。 但 是 考 虑 到 搭 建 Gitlab 的 服 务 器 可 能 还 要 用 于 其 他 服 务 , 所 以 这 里 的 80 和 22 端 口 将 会 修 改 成 本 地 其 他 端 口 , 而 在 宿 主 机 上 使 用 统 一 的 Nginx + SSL 来 支 持 SSL 化 。 虽 然 这 样 不 需 要 把 SSL 证 书 挂 载 到 容 器 内 , 但 还 是 需 要 告 诉 容 器 启 动 HTTPS (GITLAB_HTTPS) 和 实 际 使 用 的 端 口 (GITLAB_PORT 和 GITLAB_SSH_PORT), 否 则 在 UI 上 显 示 的 将 是 HTTP 和 容 器 内 部 的 端 口 。
白 了 文 伟 j 介 罢
一 般 来 说 采 用 默 认 的 . 每 天 凌 晨 1 点 “ 策 略 自 动 备 份 即 可 , 可 以 根 据 实 际 需 求 修 改 为 不 同 的 时 间 点 或 每 周 或 每 月 。 备 份 的 压 缩 包 会 保 存 在 gitlab-data 目 录 下 的 backups 目 录 里 。
Pages 设 置
Pages 功 能 是 Gitlab CE 提 供 的 一 个 非 常 实 用 的 内 部 静 态 页 面 托 管 方 案 , 不 像 Github Pages 是 完 全 公 开 的 , Gitlab Pages 也 可 以 根 据 Gitlab 本 身 的 用 户 验 证 来 限 制 页 面 的 访 问 权 限 。 这 里 上 面 下 载 的 配 置 文
九 队 E 需 要 i V 二 级 域 名 , 非 主 域 名 ) , 并 将 该 域 君 对 应 的 通 配 符 解 析 制 Gitlab 服 务 器 。 解 析 好 后 , 普 通 项 目 的 访 问 URL 是 https://{username}.pages.example.com/tprojecty, 比 如 项 目 zhonger/zhonger 的 Pages 访 问 URL 为 https://zhonger.pages.example.com/zhonger。 如 果 项 目 名 与 前 面 的 域 名 完 全 对 应 , 那 么 就 可 以 直 接 使 用 域 名 访 问 , 无 须 带 子 目 录 , 比 如 项 目 zhonger/zhonger.pages.example.com 的 Pages 使 用 https://zhonger.pages.example.com 访 问 即 可 。
相 对 路 径 配 置 如 果 想 要 把 Gitlab 服 务 与 其 他 服 务 共 用 一 个 域 名 对 外 提 供 服 务 , 那
么 就 需 要 设 置 相 对 路 径 GITLAB_RELATIVE_URL_ROOT。 比 如 想 要 使 用 https://lexample. Com/git 的 URL 访 问 Gitlab 服 务 , e 沥
雯 锷 新 设 置 相 对 跳 彼 编 详 生 效 编 译 过 程 可 能 比 较 长 M
初 始 root 密 码 配 置 GITLAB_ ROOT _PASSWORD 配 置 节 为 初 始 管 理 员 用 户 (root) 密
二 一 n GITLAB_ROOT_PASSWORD 配 置 节 为 初 始 管 理 员 用 户 (root) 密 码 , 如 果 置 空 则 为 Gitlab 官 方 常 用 默 认 密 码 5iveL!fe。
verSion: “2.3,「
services : redis :
restart: alLwayS image: redis : 6 .2 command : - --Loglevel warning volumes : - /redis-data: /data
postgresdl : restart: alLwayS image: sameersbn/postgresql:12-20200524 volumes : - /postgresql-data: /Var/1ib/postgresql environment : - DB_USER=git1ab DB_PASS=password DB_NAME=gitLabhq_Pproduction DB_EXTENSION=pg_trgm,btree_gist
gitlab :
restart: alLwayS
image: sameersbn/gitlab:14.1.1
depends_on:
-
Iedis
-
Postgresql
PortS :
“10080:80“
一 “10022:22“
volumes :
- /gitLab-data: /home/git/data
healthcheck : test: [【“CMD“, “/usr/LocalL/sbin/healthcheck“ ] interVal : 5m
EHR ES image: sameersbn/gitlab:14.1.1 depends_on: - Iedis - Postgresql PortS : “10080:80“ - “10022:22“ volumes : - /gitLab-data: /home/git/data healthcheck : test: [【“CMD“, “/usr/LocalL/sbin/healthcheck“ ] interVal : 5m timeout: 108 retries: 3 start_period: 5m environment : DEBUG=false
-
_DB_ARDAPTER=postgresq1
-
_DB_HOST=postgresq1
-
DB_PORT=5432
-
DB_USER=git1ab
-
_DB_PASS=password
-
_DB_NAME=gitlabhq_production
-
REDIS_HOST=redis
-
REDIS_PORT=6379
-
T2=Rsia/Shanghai
-
GITLAB _TIMEZONE=Beijing
-
GITLAB _HTTPS=true SSL_SELF_SIGNED=false
TLAB_HOST=Localhost
TLAB_PORT=10080
TLAB_SSH_PORT=10022
TLAB_RELATIVE_URL_ROOT-
-
GITLAB_SECRETS_DB_KEY BASE=fd6d127c-f4ce-11eb-8163- 1e008a0e6985
-
GITLAB_SECRETS_SECRET _KEY BASE=03221924-f4cf-1leb-a75e-
人 口 口 口 一人 一 一
1 @ 0 Q @ Q
s
TLAB_HOST=Localhost TLAB_PORT=10080 pLAB_SSH_PORT=10022 TLAB_RELATIVE_URL_ROOT- - GITLAB_SECRETS_DB_KEY BASE=fd6d127c-f4ce-11eb-8163- 1e008a0e6985
-
GITLAB_SECRETS_SECRET _KEY BASE=03221924-f4cf-1leb-a75e- 1e008a0e6985
-
_ GITLAB_SECRETS_0TP_KEY BASE=07d5caec-f4cf-1leb-ab3b- 1e008a0e6985
1 Q Q 9 Q Q
- GITLAB_ROOT_PASSWORD=root&@root
-
GITLAB_ROOT_EMAIL=root&@example .com
-
GITLAB _NOTIFY_ON _BROKEN _BUILDS=true
- GITLAB_NOTIFY _PUSHER=false
TLAB_EMAIL=notifications&examplLe .com pLAB_EMAIL _ REPLY _ TO=norep1y&example .com TLAB_INCOMING_EMAIL _ADDRESS=rep1y&example .com
1 Q G @
TLAB _BACKUP_SCHEDULE=daily TLAB_BRCKUP_TIME=01 : 00
Q G
TLAB_SHARED_DIR=/home/git/data/shared TLAB_PAGES_ENABLED=true TLAB_PAGBES_DOMAIN=pageS .example .com TLAB_PAGES_DIR-=$GITLAB_SHARED_DIR/pages TLAB_PAGES_PORT=80 TLAB_PAGES_HTTPS=true
Q Q 9 Q Q @
启 动 与 测 试
在 ~/web/gitlaby 目 录 使 用 以 下 命 令 拉 取 并 启 动 所 有 容 器 实 例 。 如 果 已 经 在 宿 主 机 的 Nginx 上 预 先 配 置 好 Gitlab 访 问 域 名 gitexample.com 以 及 SSL 证 书 , 则 可 以 使 用 https://git:example.com
怀 心 在 ~/web/gitlaby 目 录 使 用 以 下 命 令 拉 取 并 启 动 所 有 容 器 实 例 。 如 果 已 经 在 宿 主 机 的 Nginx 上 预 先 配 置 好 Gitlab 访 问 域 名 gitexample.com 以 及 SSL 证 书 , 则 可 以 使 用 https://git.example.com 雷 揉 访 闯 吴 劣 好 的 Gitlab。
docker-compose up -Qd Gitlab Runner
Gitlab CE 提 供 的 Pages 功 能 必 须 与 Gitlab Runner 不 吊 贺 则 源 代 码 无 法 编 译 成 静 态 页 面 , 从 而 无 法 正 常 提 供 Pages 功 能 。 虫 然 Gitlab Runner 有 好 几 种 方 式 , 但 是 为 子 避免 对 于 服 务 器 的 环 境 的 破 坏 和 支 持 更 多 的 源 码 编 译 环 境 , 这 里 建 议 采 用 docker 方 式 启 动 Gitlab
rUnner。
启 动 使 用 以 下 命 令 拉 取 并 启 动 gitlab-runner 的 最 新 镜 像 。
docker run -d --name gitlab-runner --restart alwayS \ -V /srv/gitlab-runner/config: /etc/gitLlab-runner 飞 -V /var/run/docker.sock: /Var/run/docker .Sock -n gitLab-runner “ gitLab/gitLab-runner : Latest
配 置
江 进 入 gitlab-runner 容 器
docker exec -ti gitlab-runner registeI
江 根 据 提 示 输 入 内 容
江 输 入 Gitlab 服 务 的 URL, 比 如 https: //git .example .com
江 输 入 Token, 可 以 在 Gitlab 的 管 理 员 配 置 的 Runner 里 面 看 到
永 输 入 描 逊 , 棣 据 实 际 自 行 设 定 , 可 以 是 主 机 别 名
仁 标 林 门 许 runner 绑 定 的 标 盖 tag, 可 以 输 入 一 个 或 空 格 间 隔 多 个 , 也 可 以 置 空 飞
北 冼 挟 rmnner“_RxenmDT 为 nrier 江 进 入 gitlab-runner 容 器
docker exec -ti gitlab-runner registeI
江 根 据 提 示 输 入 内 容
江 输 入 Gitlab 服 务 的 URL, 比 如 https : //git .example .com
江 输 入 Troken, 可 以 在 Gitlab 的 管 理 员 配 置 的 Runner 里 面 看 到
永 输 入 描 逊 , 棣 据 实 际 自 行 设 定 , 可 以 是 主 机 别 名
仁 标 林 门 许 runner 绑 定 的 标 签 tag, 可 以 输 入 一 个 或 空 格 间 隔 多 个 , 也 可 以 置 空 飞
江 选 择 runner executor 为 docker
江 输 入 默 认 的 编 译 环 境 镜 像 , 比 如 python:alpine 平 台 运 维
升 级 升 级 路 线 规 划
前 面 已 经 提 到 过 Gitlab 的 升 级 实 际 上 是 要 遵 循 Gitlab 官 方 提 供 的 路 线 图 的 , 即 按 版 本 逐 步 迭 代 升 级 , 具 体 可 以 查 看 Upgrade-paths。 截 上 到 文 章 撰 写 之 时 ,Gitlab 的 版 本 升 级 主 要 路 线 为 : 8.11.Z -> 8.12.0 -> 8.17.7 -> 9.5.10 -> 10.8.7 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> latest 13.12.Z -> latest 14.0.Z -> 14.1.Z -> latest 14.Y.Z。 这 里 的 Z 指 的 是 该 主 要 版 本 的 最 后 一 个 次 要 版 本 ,Y 指 的 是 最 新 的 主 要 版 本 。Gitlab 的 版 本 可 以 通 过 Version-specific upgrading instructions 和 Releases 来 确 认 。 当 然 , 在 文 档 中 我 们 也 可 以 看 到 一 些 具 体 的 版 本 升 级 路 线 的 示 例 。 如 果 我 们 当 前 的 版 本 符 合 某 一 条 升 级 路 线 , 那 久 可 以 直 接 接 照 仁 例 中 的 路 线 逐 矛 升 级 。 如 果 不 符 合 则 需 要 自 行 根 据 主 要 路 线 进 行 确 认 。
这 里 我 们 以 当 前 版 本 13.2.6 想 要 升 级 到 13 主 要 版 本 的 最 后 一 个 次 要 版 本 13.12.4 为 例 进 行 尝 试 。 首 先 查 阅 一 下 sameersbn/docker-gitlab 的 版 本 号 , 发 现 如 下 :
。 13.2.6 为 13.2.Z 的 最 后 一 个 修 补 (patch) 版 本 s 自 13.7.0 版 本 开 始 sameersbn/docker-gitlab 采 用 Postgresql 12 b 居 “ 24 是 13 主 要 (Major】 版 本 中 的 最 后 一 个 次 要 (Minor) 版
根 据 以 上 的 升 级 主 要 路 线 可 知 , 从 13.2.6 版 本 到 13.12.4 其 实 一 步 到 位 升 级 也 趸 可 行 的 。 住 是 实 际 上 「13.2.6 版 本 对 应 的 postgresql 的 版 未 适 奉 I 厂 从 13.7 古 朔 李 宇 厚 开 始 升 级 刺 12 林 据 GKlab 渡 循 的 版
/ 人
本 。 在 同 一 个 主 要 版 许 0 弓 余 所 以 订 以 设 定 升 级 绘 线 为 : 13.2.6 -> 13.7.4 ->
边 备 份 边 升 级
Gitlab 的 备 份 还 原 需 要 是 在 与 备 份 对 应 的 版 本 上 做 的 。 如 果 因 为 升 级 失 败 而 需 要 使 用 旧 版 本 的 备 份 还 原 , 需 要 移 除 失 败 版 本 所 用 的 文 件 夹 及 文 件 , 并 启 动 一 个 对 应 版 本 的 新 实 例 然 后 进 行 备 份 还 原 。
汀 首 先 对 13 .2 .6 版 本 进 行 备 份 docker-compose run --rm gitlab _app:rake gitlab:backup:create 江
将 会 进 行 手 动 备 份
江 修 改 docker-compose.yml 中 的 gitlab 镜 像 版 本 为 13.7.4, 江 同 时 修 改 postgresql 的 镜 像 版 本 为 12-20200524 江 销 毁 旧 版 本 的 实 例 集 群 并 启 动 新 的 实 例 集 群
docker-compose down && docker-compose 志
UP 江 英 弃 郭 量 吴 各 顺 服 务
口 gs gitL1ab_gitLab 江 亢 日 F 面 登 录 验 证 , - 雷 宏 妮 肖 动 级 成 功
江 对 13.7.4 版 本 进 行 备 价 docker-compose run --rm gitlab _app:rake gitlab:backup:create 江
将 会 进 行 手 动 备 份
江 修 改 dockerc-compose.yml 中 的 gitlab 镜 像 版 本 为 13 .12 .4, 江 同 时 修 改 redis 的 镜 像 版 本 为 6 . 2, 之 前 redis 的 镜 像 版 本 为 5.0.9
以 6 出 | 口 LE th sh/5| 佳 3 Hf 巳 =hEhh Sh /5| 余
Gitlab 的 备 份 还 原 需 要 是 在 与 备 份 对 应 的 版 本 上 做 的 。 如 果 因 为 升 级 失 败 而 需 要 使 用 旧 版 本 的 备 份 还 原 , 需 要 移 除 失 败 版 本 所 用 的 文 件 夹 及 文 件 , 并 启 动 一 个 对 应 版 本 的 新 实 例 然 后 进 行 备 份 还 原 。
江 首 先 对 13 .2 .6 版 本 进 行 备 份 docker-compose run --rm gitlab _app:rake gitlab:backup:create 江
将 会 进 行 手 动 备 份
江 修 改 docker-compose.yml 中 的 gitlab 镜 像 版 本 为 13.7.4, 江 同 时 修 改 postgresql 的 镜 像 版 本 为 12-20200524
江 销 毁 旧 版 本 的 实 例 集 群 并 启 动 新 的 实 例 集 群
小 命 吾 compose down && docker-compose up -Qd
丨 人 伟 人 CIE 弃 郎 b 量 启 各 项 服 务 查 i 实
口 Logs gitLab_gitLab_1 汀 访 问 界 面 , 登 录 验 证 , 确 认 实 例 升 级 成 功
江 对 13.7.4 版 本 进 行 备 价 docker-compose run --rm gitlab _app:rake gitlab:backup:create 江
将 会 进 行 手 动 备 份
江 修 改 dockerc-compose.yml 中 的 gitlab 镜 像 版 本 为 13.12 .4,
江 同 时 修 改 redis 的 镜 像 版 本 为 6 .2, 之 前 redis 的 镜 像 版 本 为 5.0.9
江 销 毁 旧 版 本 的 实 例 集 群 并 启 动 新 的 实 例 集 群
小 命 吾 -compose down && docker-compose up 英 弃 郭 b 菜 吴 各 顺 服 务 查 i 实
口 Logs gitlLab_gitLab
江 访 问 界 面 , 罪 桐 验 诛 - 雷 宏 妮 肖 动 级 成 功
如 果 在 升 级 之 后 发 现 升 级 失 败 或 新 版 本 中 某 些 组 件 有 问 题 愚 要 回 滚 , 就 需 要 利 用 刚 才 升 级 过 程 中 提 前 备 份 好 的 数 据 还 原 备 份 了 。
江 复 制 刚 才 备 份 的 所 有 数 据 文 件 到 当 前 工 作 目 录 cp gitLab/backups/* .tar /
江 销 毁 所 有 实 例
docker-compose down
江 移 除 本 地 持 久 化 文 件 夹 及 文 件
Sudo rm -rf _qitlab postqresaql redis
docker-compose run --Lm gitLab _ app:rake gitLlab:backup:create 永
将 会 进 行 手 动 备 份
江 修 改 dockerc-compose.yml 中 的 gitlab 镜 像 版 本 为 13.12 .4,
江 同 时 修 改 redis 的 镜 像 版 本 为 6 .2, 之 前 redis 的 镜 像 版 本 为 5.0.9
江 销 毁 旧 版 本 的 实 例 集 群 并 启 动 新 的 实 例 集 群
小 命 吾 -compose down && docker-compose up 英 弃 郭 b 菜 吴 各 顺 服 务 查 i 实
口 Logs gitlLab_gitLab
江 访 问 界 面 , 罪 桐 验 诛 - 雷 宏 妮 肖 动 级 成 功
如 果 在 升 级 之 后 发 现 升 级 失 败 或 新 版 本 中 某 些 组 件 有 问 题 愚 要 回 滚 , 就 需 要 利 用 刚 才 升 级 过 程 中 提 前 备 份 好 的 数 据 还 原 备 份 了 。
江 复 制 刚 才 备 份 的 所 有 数 据 文 件 到 当 前 工 作 目 录 cp gitLab/backups/* .tar /
江 销 毁 所 有 实 例
docker-compose down
江 移 除 本 地 持 久 化 文 件 夹 及 文 件
sudo rm -rf gitlab postgresql redis
江 修 改 docker-compose.yml 中 的 配 置 到 想 要 回 滚 的 备 份 数 据 对 应 的 版 本
江 此 处 注 意 三 个 镜 像 版 本 的 对 应 修 改
江 启 动 实 例 集 群
docker-compose up
汀 诊 英 许 利 技 述 伟 吊 备 价 文 件 央
cP ./*.tar gitlab/backups
江 『 扰 行 恢 复 数 揉 探 作
docker-compose run --rm gitlab _app:rake gitlLab:backup:restore 江
将 会 看 到 可 用 备 份 列 表 参 考 资 心
s 《Pro Git》 s Sameersbn/docker-gitlab
Category: 杂物