4月22日是世界地球日,善待地球,保护我们的环境!今天GitLab也发布月度版本13.11。新增加的功能有GitLab Kubernetes代理,可是实现基于拉的一键进群部署。兼容管道配置,可以定义可强制执行的管道,管道中可以配置好相应遵从框架的任何项目(甚至是自定义框架)运行。更多功能,请和虫虫一起学习。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(1)

概述

控制可以使自动化随着团队成长和扩展而步入正轨,也能减轻合规性工作任务。GitLab新推出的以Kubernetes代理为核心,通过GitLab的Kubernetes集成支持基于拉的部署,这是安全性首选的部署,并迅速成为Kubernetes部署实践的流行方法。代理还支持网络安全策略集成和告警,告警可在群集中启用微调的RBAC控制。符合要求的管道配置可以通过定义可在分配了相应合规性框架的任何项目中运行的可执行管道来实施更高程度的职责分离,并降低业务风险。

同时,自定义合规框架标签,可以自定义要求,而不是PCI,HIPPA等统一性的要求求。

通过要求管理员用户在运行管理命令之前重新验证,新的管理员模式提高了对GitLab实例的安全性和控制力。

自建GitLab实例的新导出功能,使用户审核报告也变得更加容易,从而可以在一处查看用户可以访问哪些组,子组和项目。

管道编辑器可以让用户工作得更快,并保持更富有成效,一旦开始。新的“空状态”增强功能将允许新用户开始在新的空白管道文件上使用管道编辑器,而无需先创建配置文件。可以在单个作业中配置多个缓存键的功能将帮助提高管道性能,并且可以从CI/CD仪表板评估这些改进,新的DORA 4图形将通过提交代码的时间来显示更改的提前期。并部署到生产中。作为相关说明,有关DevOps采用的指标现在可以在组级别使用,使用户可以了解如何采用GitLab的DevOps功能。

新的基于Semgrep的灵活规则语法以扩展和修改自定义检测规则,让GitLab SAST更加灵活和强大。通过增加了对自定义证书和密钥到期电子邮件告警的支持。现在,可以通过对Git活动强制执行SAML来改善安全状况。

新的呼叫中心计划管理在GitLab中收到的告警路由到该项目的时间表中的On-call工程师。随着安全告警日趋成熟,该计划管理将特别有用,它可提供有价值的事件管理功能,并在整个DevOps流程中具有端到端可见性。

主要功能GitLab SaaS的GitLab Kubernetes代理(PREMIUM及以上)

GitLab Kubernetes代理可在GitLab SaaS上获得。通过使用代理,可以受益于对群集进行快速,基于请求的部署,而GitLab SaaS可以管理代理的必要服务器端组件。 GitLab Kubernetes代理是GitLab Kubernetes集成的核心构建块。基于代理的集成支持基于请求的部署以及Network Security策略集成和告警,并且不久还将获得对基于推送的部署的支持。

与传统的基于证书的Kubernetes集成不同,GitLab Kubernetes代理不需要向GitLab开放集群,并可围绕集群中GitLab的功能进行微调的RBAC控件。

呼叫中心时间表管理 (PREMIUM及以上)

客户往往期望24/7全天候可用。 当出现问题时,需要一个随叫随到的On-Call团队(或多个团队!)来快速有效地响应服务中断。

为了更好地管理压力和精疲力尽,大多数团队内部会轮流值班。GitLab的On-Call值班时间表管理功能使团队可以创建和管理通话职责的时间表。通过HTTP接口在GitLab中收到的告警将在该特定项目的时间转呼给值班工程师。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(2)

管理区管理员模式

Gitlab引入管理员模式,它可以帮助管理员从一个帐户安全地工作。当“管理模式”处于非活动状态时,管理员具有与普通用户相同的特权。在运行管理命令之前,管理员用户必须重新验证其凭据。管理员模式通过保护敏感的操作和数据来提高实例安全性。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(3)

导出用户访问报告(PREMIUM及以上)

注重合规性的企业经常需要审查其用户对公司系统和资源的访问权限。GitLab中要实现这一目标,需要使用构建自定义工具,审计相关的API以组装所需的数据。

新版本中,只需点击点击管理区域导出按钮,就可以导出成CSV文件,文件包含每个用户以及他们有权访问的组,子组和项目的列表。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(4)

在同一作业中使用多个缓存

GitLab CI/CD提供了一种缓存机制,可以在作业运行时节省宝贵的开发时间。 以前,不可能在同一作业中配置多个缓存键。该限制可能导致使用工件进行缓存,或将重复的作业用于不同的缓存路径。在此版本中,提供了在单个作业中配置多个缓存键的功能。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(5)

变更指标的DORA 4提前期跟踪

衡量软件开发生命周期的效率是任何组织提高DevOps使用率的重要步骤。之前,GitLab添加了API支持为更改的交付时间项目级别。这些指标可以指示吞吐量,因此可以知道提交代码并将其部署到生产环境所花费的时间。在新版本中,可以通过CI/CD仪表板在GitLab UI中访问该功能,新图表将显示更改的前置时间,并具有查看不同时间范围视图的功能,例如上周,上个月,或最近90天。并且还在组级别上添加了对该API的支持,使可以从属于该组的所有项目中获取变更指标的汇总提前期。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(6)

用于问题和合并请求的实例和组描述模板(PREMIUM及以上)

新版本中,多个项目可以使用单个仓库集中管理和获取模板。相关实例和组级别的文件模板扩展,以include发出和合并请求描述模板。当在.gitlab目录创建一个文件模板,则该模板可以用于属于该实例或组的所有项目。每个组或子组还可以设置一个附加的模板存储库,这将使来自多个文件模板存储库的模板能够级联到子组和项目。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(7)

CI/CD管道中的可选DAG ('needs:')作业

GitLab CI/CD中的有向无环图(DAG)使可以使用 needs语法,用于将作业配置为比其阶段更早。也支持rules,only,或者except关键字,用于确定是否将作业完全添加到管道中。但是,当needs 与其他关键字一起使用时,如果未将依赖作业添加到管道中,则管道可能会失败。

在此版本中,添加optional关键字needs DAG作业的语法。如果一个依赖的工作被标记为optional但不在于管道中,needs工作会忽略它,如果工作是optional并出现在管道中needs作业等待它完成后再开始这样可以更轻松地安全组合rules,only,和except。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(8)

组级别的特定于环境的变量(PREMIUM及以上)

许多组织更喜欢在组级别指定密码和其他环境变量,因为它与团队边界或信任级别非常吻合。到目前为止,组级环境变量会影响所有环境,这在许多用例中都限制了它们的可用性。新版本中,支持组级别发布特定于环境的变量。

该更改补充了项目级别的类似功能。从现在开始,组维护者可以指定要应用给定变量的环境。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(9)

使用GitLab Operator(beta)在OpenShift和Kubernetes上部署GitLab

GitLab正在努力提供对OpenShift的全面支持。新发布了MVP GitLab Operator。用来在Kubernetes和OpenShift容器平台上管理GitLab实例的整个生命周期。不过,这一个beta版本,不建议用于生产环境。下一步将是使Operator普遍使用(GA)。将来,尽管仍会支持GitLab Helm图表,但该操作员将成为Kubernetes和OpenShift的推荐安装方法。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(10)

看板添加迭代列表

看板现在支持创建迭代列表。将问题从一个迭代快速转移迭代在计划板上到另一个,或使Epic能够在即将到来的迭代中有效地对Epic问题进行排序。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(11)

项目的活动集成现在显示在设置菜单

新版本中,活动集成显示在页面的菜单中,用户可以更清楚使用的内容,并且更容易最关心的集成。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(12)

Cherry Pick从fork提交给父对象

使用GitLab 13.11,项目成员可以从下游分支中挑选出一些承诺,然后再将其提交回项目中。在cherry-pick对话框中添加了一个新的“Pick in project”部分,当在提交的详细信息页面上选择“选项”>“ Cherry-pick”时显示。

贡献者社区可以为的项目做出贡献,团队不再需要手动下载fork的.patch文件来从陈旧或未维护的fork中获取良好的更改。

未来的增强功能包括从一个分支到另一个分支的Cherry Pick选择提交。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(13)

Jira Connect应用程序配置的改进

当配置用于Jira的GitLab SaaS时,可以在将可用的名称空间链接到的帐户时对其进行过滤,从而简化了可访问大量名称空间的用户的配置。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(14)

为fork中的合并请求设置默认目标项目

Fork项目后,使用合并请求为上游项目做出贡献可能会有所帮助。之前GitLab假定来自fork项目的合并请求将始终以上游项目为目标。这可能会导致不应该在上游进行代码合并的错误步骤,或者用户需要在打开合并请求之前进行更改。

新版本中,GitLab现在支持在fork项目中创建的合并请求设置默认目标项目。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(15)

违反代码质量的程度按严重性排序

在项目上运行代码质量扫描可以发现数十到数千个违规。在“合并请求”小部件的较小视图中,当通过大量代码质量违规排序时,可能很难先确定最关键的问题要首先解决。

新版本中,“代码质量合并请求”小部件和“完整代码质量报告”默认均按严重性对违规进行排序,以便可以快速识别要解决的最重要的代码质量违规。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(16)

从版本控制下载Composer依赖项

下载Composer依赖项时有两个选项:source或dist。对于稳定版本,dist默认情况下,Composer使用并将依赖项下载为zip文件。但是,也可以直接从版本控制中下载它。如果启用--prefer-source,Composer会将依赖项下载为Git克隆而不是打包的zip文件。如果要为项目进行错误修复并直接获取依赖项的本地Git克隆,这将很有用。

直到最近,还无法在下载Composer依赖项时使用prefer-source和相关的preferred-install命令和配置。这使许多人无法将GitLab软件包注册表使用Composer依赖项。

新版本中,可以使用--prefer-source从源代码下载Composer依赖项:

composer update --prefer-source。

共享打包和容器注册表的过滤视图

可以使用GitLab软件包和容器注册表来发布和共享项目的依赖项。当在GitLab中查看注册表时,可以对结果进行过滤和排序,以查找和验证所需的项目。之前,无法与队友共享注册表的过滤视图。这样团队成员需要花时间过滤视图。这效率低下,并带来了可能安装错误的依赖项的风险。

在GitLab 13.11中,可以通过简单地从浏览器复制URL并将其与团队共享来共享注册表的过滤视图。

Geo支持管道工件(PREMIUM)

Geo现在支持将管道工件复制和验证到从站点,从而允许分布式团队从最近的Geo站点访问它们,这减少了延迟并改善了整体用户体验。Geo会自动验证复制的管道工件的数据完整性。这确保了管道工件在传输或静止时不会损坏。如果将Geo用作灾难恢复策略的一部分,则可以保护客户免受数据丢失的影响。

根据状态过滤要求(ULTIMATE)

要知道产品的哪些区域需要其他测试或不完整,新版本中可以根据状态过滤需求列表。由于可以通过CI/CD管道作业来满足需求,因此需求的状态始终是最新的。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(17)

添加独立评论以合并请求评论

在查看更改时,可能希望总结反馈,或对与特定更改无关的内容发表评论。在GitLab只允许评论更改或答复现有评论,这意味着其他种类的意见提交了审查后作出。

作为审核过程的一部分,现在可以提交一般评论以及回复或针对变更的评论。通过常规注释,可以很轻松地向作者提供反馈,并使用快速操作来更新合并请求中的项目。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(18)

强制推送受保护分支的选项

Git强制推送危害很大,危害很大,危害很大!所以一般通过保护分支来,防止该操作。但是在特殊情况下有时可能会需要它。临时删除分支保护可能并不是很理想的方法。

GitLab 13.11为受保护的分支引入了新的“允许强制推送”设置,使“允许推送”白名单列表中的用户可以强制推送。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(19)

搜索设置项

GitLab设置项复杂而繁琐,找到一个确切的配置项很费时间。即使知道在哪里查看,许多设置视图还也包含多个部分和数十个单独的配置选项。

在新版本中,现在可以使用组、项目,管理员和用户设置中的搜索字段来快速查明所需的配置搜索条件将向下过滤配置页面,以仅显示相关设置,甚至突出显示该页面上出现的搜索词。

在未来的迭代中,会扩展此功能以在所有设置视图中进行搜索。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(20)

VS Code中GitLab工作流程欢迎视图

Visual Studio Code(VS Code)的GitLab工作流扩展入门需要一些手动步骤才能将其连接到GitLab。如果扩展名设置不正确,或者是第一次设置扩展名,可能很难验证是否正确配置了扩展名。

在VS Code内的GitLab工作流窗格中,现在有一些步骤可帮助入门。它还会告诉当前的工作空间是否包含GitLab项目。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(21)

从管道编辑器创建初始配置文件

管道编辑器是构建和测试CI/CD管道的一站式服务。以前,只有在.gitlab-ci.yml存储库的根目录中已经存在配置文件的情况下,编辑器才起作用。在此版本中,增加了从管道编辑器页面本身创建初始空管道文件的功能,因此可以立即开始创作管道。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(22)

提交作者的预定义CI/CD变量

以前,如果需要确定正在运行的CI/CD作业中提交作者,则必须向该作业添加一个额外的API调用以进行检索。现在,此信息可以作为CI_COMMIT_AUTHOR预定义的CI/CD变量轻松使用。

使用SemVer发布和安装通用软件包

可以使用GitLab软件包注册表来发布和共享通用软件包文件。可以使用命令行来执行此操作,但是很可能使用GitLab CI/CD来发布大多数文件。

在GitLab 13.11之前,对文件名GitLab验证阻止上传具有语义版本(SemVer)的软件包。由于SemVer通常用于将文件标记为与给定版本或分支相关,因此这使许多人无法在管道中使用程序包注册表。

GitLab 13.11放宽了文件名验证,因此可以使用SemVer来命名文件。希望该更新可以帮助用户采用程序包注册表,并使命名,验证和验证通用程序包更加容易。

Composer v2与GitLab软件包注册表一起使用

可以使用Composer将PHP依赖项发布,共享并下载到GitLab项目。六个月前,发布了Composer的新主版本(v2),并进行了多种更改,包括显著的性能改进,体系结构更新和运行时功能。

但是,一直以来都无法正常利用这些改进,因为GitLab注册表不支持Composer v2。新版本中添加了一个接口GET group/:id/-/packages/composer/p2/:package_name,该接口返回存储库中所有软件包的元数据。当Composer查找软件包时,它将替换%package%为软件包名称并获取该URL。

请注意,有两个参数是可选的,增加对providers-api和list-api参数的支持。

集成自建Prometheus

通过将群集服务与GitLab集成,可以受益于各种GitLab功能,例如环境面板,Prometheus度量标准和应用程序日志。之前功能要求使用不适合用户的工作流程和要求的GitLab托管应用程序。

在新版本中,可以通过GitLab服务与Prometheus和Kubernetes集成,并按照个性化的公司流程和政策,对它们进行最终维护。对新用户,GitLab也提供广泛的文档和建议的工作流程,介绍如何安装这些应用程序。

Geo验证复制的版本化摘要(PREMIUM)

Geo会自动验证复制的Versioned Snippets的数据完整性。这样可以确保摘要在传输过程中或静止时都不会损坏。如果将Geo用作灾难恢复策略的一部分,则可以保护客户免受数据丢失的影响。

在下一次迭代中,一旦检测到验证不匹配,将实现自动修复。Geo的验证功能通常在Geo的复制框架中实现,我们计划将验证应用于所有其他复制的数据类型。

Omnibus的改进

GitLab 13.11中,引入了Mattermost 5.33,其中包括在删除反应表中的反应时进行的软删除。对于HTTP版本低于1.1的WebSocket握手会导致警告,并且服务器将透明地将版本升级到1.1以符合WebSocket RFC。

在将来的Mattermost版本中将删除此功能,强烈建议修复代理配置以正确使用WebSocket协议。

Gitlab Runner 13.11

一起,还发布了GitLab Runner 13.11。新的功能和变化有:

Node.js项目的缓存速度更快;

允许用户为Kubernetes执行程序指定多个拉策略;

Bug修复:

使用kubectl attach非root用户时的权限错误;

Docker执行器中的GID检查使用错误的方法;

docker machine执行程序创建失败时跳过VM设置;

Kubernetes执行器不会在构建日志中扩展镜像变量。

GitLab Helm chart改进

Sidekiq图表中现在可以使用Sidekiq中的配置选项terminationGracePeriodSeconds,可以在Pod节点关闭期间更好地保护长时间运行的作业。

之前,如果用户将设置SIDEKIQ_TIMEOUT为大于terminationGracePeriodSeconds的值,则没有任何保护措施。这将导致继续运行超过30秒的作业被强行停止。在新版本中,Sidekiq部署现在可以具有不同的超时时间。

现在支持服务帐户访问外部对象存储的IAM角色。

Bug修复

13.11中一些值得注意的错误修复是:

使用CI_JOB_TOKEN在其他名称空间安装npm软件包失败,并显示404。

项目级的Conan APIdownload_urls返回损坏的URL。

在组级别修复提取软件包所需的权限。

LinkMergeRequestWorker的性能改进,用于针对GitLab SaaS的Postgres primary运行SQL查询。

安全中心项目选择器不会为Auditor用户返回任何结果。

客户报告了加载项目级漏洞报告和导出时的错误。

容器扫描-允许列表的用法和逻辑。

无法在非最终MR上获得安全报告信息错误。

第一次单击时未禁用“触发手动操作”按钮,可能会发生多个API请求。

在管道列表中,状态标签使表格列溢出。

作业工件UI区域显示一条消息,用于在没有工件时下载工件。

地理辅助身份验证重定向到主站点的内部URL。

当Gitaly关闭时,Geo项目/Wiki同步不会显示任何错误。

更新Elasticsearch URL不会创建所有Elasticsearch索引。

发送从服务台创建的新问题的通知。

如果快速行动没有效果,提供更好的反馈。

测试用例的任务列表项被禁用。

在最后一行时,表情符号有可能被切断的bug。

在测试集成时捕获网络错误。

修正Jekins URL不能为空的问题。

VSA路径导航中如果缺少stage时间时候重复添加的问题。

CE版本MR时候卡在“此合并请求的管道未完成”中。

并行模式下的断字可能会使审阅者混淆的问题。

在树状视图中看不到最后一个文件。

在GitLab Web GUI中从名称较长的分支切换到名称较短的分支时,URL断开了的问题。

安全和合规性审计合规管道配置 (ULTIMATE)

新版本中可以定义可强制执行的管道,该管道将在分配了在任何项目中运行合规性框架。

对于希望在管道工作流程中实现合规性要求的团队,可以通过为特定的合规性框架设置单个管道定义来实施更大的职责分离。使用该框架的所有项目将自动包含预定义的管道。用户可以扩展但不能修改下游项目中的管道配置,从而确保每次都以相同的方式运行合规性步骤。

通过消除将管道配置手动复制到每个需要它的项目,然后进行监视以防止编辑或删除的需要,从而节省了安全性和合规团队的时间。还可以帮助开发团队遵循政策,而无需在合规问题上花费较大精力。

为合规性框架定义合规性管道配置是确保组织始终如一地满足其法规要求,同时节省每个人的时间并鼓励安全/合规性与开发团队之间进行协作的好方法。

对Python,JS和TS的实验性Semgrep分析器

Gitlab和Semgrep紧密合作,推动GitLab SAST的未来发展,GitLab寻求Beta测试人员对Python,JavaScript和TypeScript的新型Semgrep分析器进行内测。这些实验性分析器与现有的Python,JavaScript和TypeScript分析器一起运行,因此可以比较各种分析器之间检测到的漏洞。

新的适用于Python的Semgrep分析器最终将取代现有的Python分析器Bandit。

JavaScript和TypeScript的新型Semgrep分析器最终将取代ESLint分析器。要运行这些分析仪中的任何一个,都需要在“ gitlab-ci.yml”配置文件中启用实验性SAST标志,以允许新的Semgrep分析仪与任何现有的SAST分析仪一起运行。

注意,目前尚未完成分析器之间的漏洞发现的重新映射,因此可能会在安全报告中看到重复的发现。在完成此过渡后,将解决此问题。

创建自定义合规性框架标签 (PREMIUM及以上)

GitLab当前提供了几个预定义的合规性框架标签,例如GDPR,HIPAA,PCI-DSS,SOC2和SOX。 在此版本中,可以添加自己的自定义框架,用户可以为自己的特定框架和流程自定义标签。 将来,将能够基于该标签创建可应用于项目的策略。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(23)

GitLab Semgrep

GitLab SAST历来由十几个开源静态分析安全分析器提供支持。这些分析仪每月为使用GitLab的开发人员主动识别数百万个漏洞。这些分析仪中的每一个都是特定于语言的,并且具有不同的扫描技术方法。这些差异产生了用于更新,管理和维护开销其他功能的我们在这些工具之上构建的,并且给尝试进行调试的任何人造成混乱。

GitLab静态分析团队正在不断评估新的安全分析器。r2c开发团队的一个的相对较新的工具Semgrep是新的选择。Semgrep是一个快速,开放源代码的静态分析工具,用于查找错误并强制执行代码标准。Semgrep的规则看起来就像要搜索的代码;可以无需了解抽象语法树(AST)或正则表达式就编写自己的规则。

Semgrep灵活的规则语法非常适合简化GitLab的“自定义规则集”功能,以扩展和修改检测规则,这是GitLab SAST客户的普遍要求。Semgrep还拥有一个不断发展的开放源代码注册表,其中包含1000多个社区规则 。

gitlab正在将许多linte基础的SAST分析仪迁移到Semgrep。 该迁移有助于提高稳定性,性能,规则覆盖范围,并使GitLab客户能够访问Semgrep的社区规则以及我们将在未来添加的其他自定义规则集功能。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(24)

使用发行版CLI时支持自定义CA证书

在此之前,如果使用的是自建的GitLab实例,则需要CLI 与公共证书一起使用,不能集成自定义证书。在GitLab 13.11中,通过新增参数添加了对自定义证书颁发机构(CA)证书的支持:

ADDITIONAL_CA_CERT_BUNDLE 环境变量或 --additional-ca-cert-bundle标志。

除此之外还添加了INSECURE_HTTPS 环境变量和 --insecure-https标记,以便客户端可以跳过对服务器证书的验证,方式由于自签名SSL证书导致的失败。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(25)

从GitLab用户界面请求CVE ID

GitLab相信以负责任的态度披露软件漏洞。自2020年初以来,GitLab一直担任 CVE编号颁发机构(CNA ),可以为GitLab本身或GitLab SaaS上提供CVE ID托管的任何项目的安全研究人员和信息技术供应商。

在GitLab 13.11中,项目维护人员更容易通过UI从GitLab请求CVE ID 。关于在GitLab SaaS上托管的公共项目中的机密性问题,维护人员将能够在右侧边栏中请求CVE ID。单击问题侧栏中的“请求CVE ID”按钮,将转到GitLab CVE项目的新问题页面,可以在其中完成请求模板并触发请求工作流程。

如果项目所有者不希望其存储库向维护人员提供此功能,则也可以在项目设置页面上禁用此功能。 目前正在将此功能缓慢地在GitLab SaaS托管的项目推广。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(26)

开发人员 现在可以使用审核事件 (PREMIUM)

对于注重合规性的组织及其合规计划,审核日志是系统中最重要的元素之一。 审核日志提供了对用户和系统活动的可见性,以帮助对事件进行故障排除,隔离谁应负责某项操作,并允许组织为某些过程的审核员编译证据工件。以前,只有维护者,所有者和管理员可以访问“审核事件”视图。所有其他用户都不知道这些日志是否存在,并且无权查看其自己的活动,更不用说在其组织内保持合规思维了。

新版本中可以支持具有开发者访问权限或更高权限的用户可以使用“安全和合规性>审核事件”。具有开发者访问权限的用户只能看到自己的活动,而不能看到其他用户的活动。这项更改使审核数据可供更多用户访问,并有助于增强GitLab用户的合规性心态。

管理员凭证清单中可用的GPG密钥(ULTIMATE)

现在,可以在管理区域中查看用户的GPG密钥信息。可以快速查看GitLab中存储了哪些密钥,及其ID,以及是否进行了验证,以帮助更好地了解用户如何与您的GitLab实例进行交互。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(27)

在组级别注册OAuth应用程序

以前,OAuth应用程序只能由单个用户或在实例级别进行注册。在组级别上提供此功能可减轻实例管理员的管理负担,并消除了OAuth应用程序配置对单个用户的依赖性。

组级别可用的DevOps采用指标(ULTIMATE)

截止目前为止,只能通过“管理区域”访问此功能,这进一步限制了管理员的访问权限。此更新将DevOps的采用指标提高到组级别,从而使更多用户了解他们在整个GitLab中采用功能的方式和位置。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(28)

针对Git活动的组SAML强制执行(PREMIUM)

GitLab组维护者现在可以通过对Git活动实施Group SAML来增强其组安全性。当前,SAML SSO强制仅适用于GitLab UI中的活动,Git CLI操作不需要活动的SAML SSO会话。启用Git组SAML SSO实施后,用户必须具有活动的Web SAML会话才能在CLI中执行Git操作。

SSH密钥过期电子邮件通知(ULTIMATE)

可以为凭据清单的SSH密钥配置添加一个到期日期,以帮助确保密钥正确轮换并限制对实例的持续访问。

默认情况下,GitLab现在将每天检查一次,看是否有任何到期日期。密钥到期的前一周和前一天将发送一封电子邮件通知,使可以采取任何必要的操作来更新密钥或依赖密钥的任何系统。

静态分析分析器更新

GitLab静态分析由一组许多安全分析器组成,GitLab静态分析团队积极管理,维护和更新。在13.11中分析仪更新包括:

ESLint已更新至版本7.23.0。

MobSF已更新至版本3.4.0。

njsscan已更新至版本0.2.3:njsscan的最大文件大小已从25Mb减少到5Mb。

新的Sequelize规则。

gitleaks更新至版本0.2.3:新的PyPI和GitHub秘密检测规则。

如果包含GitLab托管的供应商SAST模板(SAST.gitlab-ci.yml),则无需执行任何操作即可接收这些更新。但是,如果覆盖或自定义自己的CI模板,则需要更新您的CI配置。

在用户界面中更新部署冻结期

在GitLab 13.2中,添加了在项目的CI/CD设置中创建部署冻结期的功能。此功能可帮助团队避免意外部署,减少不确定性并减轻部署风险。但是,无法更新部署冻结。在GitLab 13.11中,添加了编辑现有部署冻结的功能。用户可以更新冻结期以满足业务需求。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(29)

OpenShift支持SAST和秘密检测

从13.3开始,GitLab在Red Hat OpenShift上为跑步者提供支持。到目前为止,GitLab安全扫描还不支持该部署选项。在13.11中,GitLab SAST和秘密检测安全分析器现在可以在OpenShift部署中运行。如果覆盖或提供了.gitlab-ci.yml带有固定版本的SAST或Secret Detection分析器的自定义文件,请更新至最新的可用版本。。

支持通用Kotlin SAST扫描

由于13.5,GitLab静态应用安全扫描(SAST)已经支持扫描手机项目,包括写在科特林Android应用程序。但是,此Kotlin扫描仅关注移动应用程序的安全风险。

在GitLab 13.11中,由于的社区贡献,现有的Java分析器Spotbugs现在支持扫描通用Kotlin项目和文件。随着Kotlin的普及并在更现代的项目中逐渐取代Java,GitLab SAST继续帮助开发人员确保他们编写安全的代码。

可用性改进

在GitLab 13.11中,发布了针对问题,项目,里程碑以及更多内容的可用性改进,主要改进有:

解释什么是“覆盖率”并进行更改对代码覆盖率意味着什么。

从“测试摘要”窗口小部件链接到失败的测试文件。

工具提示应指向下拉菜单中的活动菜单项。

改进了UX的“CI/CD”左侧导航项目的开/关切换。

作业详细信息页面上的工具提示位置不应包含可点击的链接。

改进作业索引页面上时间值的标签。

从作业页面上删除CI Lint按钮。

性能提升

在每个版本中,改善GitLab性能方面取得重大进展。GitLab 13.11中的一些改进有:

从补充工具栏和可发行表单减少AutocompleteController#users要求审阅者下拉列表。

改进diffs应用程序渲染队列。

从差异行中删除安全的HTML。

将链接图标移到对从HAML到CSS(存储库)的文件行上的注释。

将差异注释注释图标移动到CSS。

在“威胁监控”页面上动态加载大量导入内容。

在Projects::PipelinesController#index中的SQL N 1查询。

ElasticIndexBulkCronWorker中的数据库查询太多。

控制器SearchController#show执行100多个SQL查询。

从“组问题列表”中删除昂贵的零问题计数。

高速缓存合并请求计入组页面的边栏中。

高速缓存Epic在组页面侧边栏中计数。

添加索引以通过奖励表情符号支持Epic过滤。

修正笔记讨论中的N 1问题。

慢速COUNT(*)查询里程碑列表中的合并请求。

缩短问题创建的响应时间。

添加索引以提高项目部署端点的性能。

通过异步执行更多任务来缩短MR创建响应时间。

改进大MR计数查询。

使用单个查询来计算多余的存储空间。

记录实验时,避免不必要地粘在数据库主数据库上。

减少从TodosDestroyer::EntityLeaveWorker生成的昂贵的SQL查询。

减少对Controller Groups::LabelsController#index的查询。

使用VirtualList渲染Swimlanes。

在/-/jira/pulls中修复N 1个查询。

避免按MR Analytics中不同表中的列进行排序。

功能变更和删除

从模糊测试默认模板中删除了所有CI/CD阶段

变更日期:2021年6月22日

在GitLab 14.0中,API-Fuzzing.gitlab-ci.yml将删除当前模板中定义的阶段,以避免模板覆盖模糊测试用户进行的手动更改的情况。由于该变更,.gitlab-ci.yml未指定fuzz阶段的配置必须更新为包括该阶段。在GitLab 13.11中,不建议使用这些阶段,因此已将其从API-Fuzzing.latest.gitlab-ci.yml模板中删除。

Auto DevOps:稳定的Auto Deploy模板续订

变更日期:2021年6月22日

在GitLab 14.0中, Auto Deploy CI模板更新为最新版本。包括对v2 auto-deploy-image的依赖关系的新功能,错误修复和性能改进。除非在项目中专门自定义Auto DevOps,否则它将使用稳定的模板,该模板依赖于v1 auto-deploy-image。由于v1和v2版本不向后兼容,因此,如果已经有已部署的应用程序,则项目可能会遇到意外故障。

GitLab 14.0中的CI/CD管道行为更改

变更日期:2021年6月22日

在GitLab 14.0中, CI/CD管道的行为进行一些更改,以提高性能和资源使用率:

预定管道的频率将受GitLab应用程序限制。对于自我管理的实例,管理员可以选择更改或禁用这些限制,这可以减少管线时间表中影响性能的cron模式所引起的问题。

在某些情况下,用户意外地同时触发了分支管道和合并请求管道,从而浪费了资源。在GitLab 14.0将添加 workflow: rule加默认值,以减少发生这种情况的风险。具有配置为依赖此行为的管道的用户可以轻松地使用自己的行为覆盖新的默认值,workflow: rule以重新启用以前的行为。

代码质量Rubocop支持更改

变更日期:2021年6月22日

默认情况下,如果使用Code Quality模板,则Code Quality不支持Ruby 2.6 。

为了更好地支持最新版本的Ruby,更改了默认的Rubocop版本增加对Ruby 2.4到3.0的支持。更改后,将放弃对Ruby 2.1、2.2和2.3的支持。需要手动自定义配置来重新启用对较早版本的支持。

替换容器扫描引擎Clair

变更日期:2021年6月22日

GitLab 14.0将用Trivy替换容器扫描引擎Clair。在GitLab 13.9中不再推荐使用Clair。对于任何13.x版本,客户都可以继续使用Clair,而无需对其CI文件进行任何更改。GitLab将不再更新或维护该扫描引擎。从14.0版本开始,Trivy将成为新的默认扫描仪,并将定期接收更新和最新功能。建议客户在14.0版本之前检查其CI文件,进行更新,以确保其容器扫描作业继续运行。

DAST环境变量重命名和删除

变更日期:2021年6月22日

GitLab 13.8重命名了多个CI/CD变量,以支持它们在不同工作流程中的更广泛使用。

在GitLab 14.0中,旧变量将被永久删除,并且将不再起作用。在GitLab 14.0及更高版本中使用这些变量进行的任何扫描都将无法正确配置。具体变量包括:

DAST_AUTH_EXCLUDE_URLS ->DAST_EXCLUDE_URLS。

AUTH_EXCLUDE_URLS->DAST_EXCLUDE_URLS。

AUTH_USERNAME->DAST_USERNAME。

AUTH_PASSWORD->DAST_PASSWORD。

AUTH_USERNAME_FIELD->DAST_USERNAME_FIELD。

AUTH_PASSWORD_FIELD->DAST_PASSWORD_FIELD。

DAST_ZAP_USE_AJAX_SPIDER->DAST_USE_AJAX_SPIDER。

DAST_FULL_SCAN_DOMAIN_VALIDATION_REQUIRED将被删除,该功能已被删除。

默认的浏览器性能测试作业将在GitLab 14.0中重命名

变更日期:2021年6月22日

当前,浏览器性能测试在performance默认情况下的作业中运行。随着GitLab 13.2中的负载性能测试的引入,这种命名可能会造成混淆。GitLab 14.0中,模板中默认作业名称将更改从performance更改为browser_performance。

弃用GitLab Pages的磁盘源配置

变更日期:2021年6月22日

GitLab Pages disk源配置将在GitLab 14.0中删除。建议不要使用,替代使用gitlab基于API的配置。可以通过

gitlab_pages['domain_config_source'] = "gitlab"

在gitlab.rb/etc/gitlab/gitlab.rb文件中进行设置来,从“磁盘”源配置中迁移。

在SAST CI模板中弃用全局`SAST_ANALYZER_IMAGE_TAG`

变更日期:2021年6月22日

从14.0开始,GitLab SAST将删除SAST.gitlab-ci.yml CI模板中的全局变量SAST_ANALYZER_IMAGE_TAG,而将分析器作业变量设置为SAST供应商模板中的'major.minor'标签。

弃用GitLab Pages的磁盘/ NFS存储

变更日期:2021年6月22日

为了使GitLab Pages与云原生兼容,从GitLab 14.0开始,GitLab Pages使用的基础存储架构更改为最近推出的ZIP存储。该迁移是自动进行的。但是,如果迁移后某些页面停止工作(404),则可能意味着自动迁移失败。为了简化向zip的过渡,从GitLab 14.0到14.3可以使用一个临时标志 gitlab_pages['use_legacy_storage'] = true,在GitLab 14.4中将删除它。标志将允许GitLab和GitLab页面使用非zip部署来提供内容。

标签API中的版本说明已弃用

变更日期:2021年6月22日

GitLab 14.0将在标签API中删除对发行说明的支持。创建新标签时,将不再能够添加发行说明,也将不再能够通过标签API创建或更新发行版。请使用Releases API。

依赖项扫描的变更

变更日期:2021年6月22日

14.0中将会删除DS分析器,需要将其从分析器的默认列表中删除,然后使用它DS_DEFAULT_ANALYZERS在项目的CI模板中设置变量。在不失去新添加的分析仪优势的情况下,避免运行特定的分析仪应该更容易。因此,在可用时从迁移DS_DEFAULT_ANALYZERS到DS_EXCLUDED_ANALYZERS。

以前,为了防止Gemnasium分析器在运行时获取咨询数据库,需要设置GEMNASIUM_DB_UPDATE变量。此文件未正确记录,并且其命名与等效BUNDLER_AUDIT_UPDATE_DISABLED变量不一致。

从Deployment API删除`updated_at`过滤器

变更日期:2021年6月22日

了使此过程更加高效和高效,部署API将在GitLab 14.0变更。在API中使用updated_after和updated_before会导致错误。这些字段将被“finished_after”和“finished_before”替换。另外,当指定了“updated_at”过滤器时,“order_by”必须为“updated_at”。

在不启用Go模块的情况下放弃对Go项目的SAST扫描的支持

变更日期:2021年6月22日

维护Go SAST分析仪GoSec的一部分,需要升级到Go 1.16。这意味着我们将不再扫描未启用Go模块的项目,不再支持1.11之前的Go版本。如果需要扫描较旧的Go项目,则可以覆盖我们的托管CI模板,并将Go分析器固定为v2.20.0。

Git默认分支名称更改

变更日期:2021年6月22日

Git版本会将Git中的默认分支名称从master更改为main。为了与Git项目和更广泛的社区进行协调,GitLab将更改SaaS(GitLab SaaS)和自GitLab 14.0自建示例的默认分支名称,这不会影响现有项目。

GitLab OAuth隐式授权不再支持

变更日期:2021年6月22日

OAuth 2隐式授权流,已被OAuth 2.1删除。从14.0开始,将无法使用OAuth 2隐式授权流程创建新的应用程序。14.4将不再支持现有的OAuth隐式授权流。

GitLab Runner安装程序忽略skel目录

变更日期:2021年6月22日

在GitLab Runner 14.0中,skel默认情况下,安装过程将在创建用户主目录时忽略该目录。

Helm v2支持

变更日期:2021年6月22日

Helm v2已于2020年11月正式放弃,此后不久,该stable存储库便从Helm Hub上除名。GitLab 14.0中(引入GitLab Helm图表的5.0版本),将不再支持Helm v2。

Chart的用户应升级到Helm v3,以部署GitLab 14.0及更高版本。

旧功能标志删除

变更日期:2021年6月22日

传统功能标志在GitLab 13.4中变为只读。在GitLab 14.0中将删除对旧功能标记的支持。

限制在GET /groups /:id/中返回的项目

变更日期:2021年6月22日

为了提高性能,我们将GET / groups /:id / API调用返回的项目数限制为100。仍然可以使用GET / groups /:id / projects API调用来检索项目的完整列表。

将pwsh设置为新注册的Windows Runner的默认外壳

变更日期:2021年6月22日

在GitLab Runner 13.2中,PowerShell Core支持已添加到Shell执行程序中。在14.0中,pwsh为新注册的Windowsrunner默认shell程序。Windows CMD仍可作为Windows运行程序的shell程序选项使用。

从SAST_DEFAULT_ANALYZERS迁移到SAST_EXCLUDED_ANALYZERS

变更日期:2021年6月22日

从13.9开始,迁移SAST_EXCLUDED_ANALYZERS到SAST.gitlab-ci.yml文件中。任何在项目CI文件中使用自定义SAST配置的人建议迁移到此新变量。如果尚未覆盖SAST_DEFAULT_ANALYZERS,则无需采取任何措施。CI/CD变量SAST_DEFAULT_ANALYZERS将在的GitLab 14.0中删除。

NFS for Git存储库存储已删除

变更日期:2021年6月22日

随着Gitaly Cluster的普遍可用性, GitLab 14.0中将删除对Nit的Git存储库的支持。

一键式GitLab托管应用程序将在GitLab 14.0中删除

变更日期:2021年5月22日

不建议使用一键安装GitLab托管应用程序。尽管从GitLab部署到Kubernetes的入门变得非常容易,但是对于实际的Kubernetes应用程序不够灵活或无法自定义。未来方向将重点是通过GitLab CI/CD在Kubernetes上安装应用程序,以便在易用性与扩展自定义之间取得更好的平衡。

GitLab 14.0版中完全删除一键式托管应用程序。这不会影响集群中现有托管应用程序的运行方式,将不再具有通过GitLab UI修改这些应用程序的能力。

对于托管的Prometheus上的告警的用户,在GitLab 14.0版中,还将删除从GitLab UI设置/修改告警的功能。

OpenSUSE

变更日期:2021年6月22日

支持的OpenSUSE 15.1已经被停止支持。对15.1的支持将在14.0中删除。支持将更新为openSUSE Leap 15.2。

PostgreSQL 11支持

变更日期:2021年6月22日

PostgreSQL 12将是GitLab 14.0中最低要求的版本。它为索引编制,分区和总体性能优势提供了显著的改进。

DAST报表中删除旧字段

变更日期:2021年6月22日

GitLab 14.0中完全删除@generated,@version,site,和spider等字段。该变更不应影响任何正常的DAST操作,但会影响以自动方式使用JSON报告并使用这些字段的用户。

合并请求批准者接口和项目批准被替换为批准规则API

变更日期:2021年6月22日

合并请求的批准规则允许通过指定合格的批准者以及每个批准者的最小批准数量来代码审查。

GitLab 13.11删除了对该借口的支持。如果当前使用该接口,需要替换为批准规则API来实现该。

软件包中删除/usr /lib /gitlab-runner符号链接

变更日期:2021年6月22日

14.0中,将删除此符号链接,并将运行器安装在中/usr/bin/gitlab-runner。

删除DAST默认模板阶段

变更日期:2021年6月22日

在GitLab 14.0中,DAST.gitlab-ci.yml将删除当前模板中定义的阶段,以避免模板覆盖DAST用户进行的手动更改的情况。

在GitLab 13.8中,不建议使用这些阶段,并将其从模板中删除的更改也包括在DAST.latest.gitlab-ci.yml模板中。

删除功能标记

变更日期:2021年6月22日

GitLab Runner 14.0中,将删除功能标记:

FF_SHELL_EXECUTOR_USE_LEGACY_PROCESS_KILL

FF_USE_GO_CLOUD_WITH_CACHE_ARCHIVER

GLOBAL_DEFAULT_BRANCH_NAME

PUSH_RULES_SUPERSEDE_CODE_OWNERS

删除SAST分析器SAST_GOSEC_CONFIG变量以支持自定义规则集

变更日期:2021年6月22日

GitLab 14.0中删除 SAST_GOSEC_CONFIG variable

删除Ubuntu 19.10(Eoan Ermine)打包包

变更日期:2021年6月22日

Ubuntu 19.10(Eoan Ermine)于2020年7月17日星期五终止维护。在GitLab Runner 14.0中,删除Ubuntu 19.10(Eoan Ermine)打包。

删除旧版DAST域验证

变更日期:2021年6月22日

GitLab 14.0中,旧的DAST验证方法将被删除。域验证此方法仅如果不允许扫描DAST_FULL_SCAN_DOMAIN_VALIDATION_REQUIRED环境变量设置为true中gitlab-ci.yml文件和Gitlab-DAST-Permission网站上的标题未设置为allow。

删除峰值时间模式配置

变更日期:2021年6月22日

在GitLab Runner 13.0, GitLab Docker Machine执行程序引入了新的计时选项。在GitLab Runner 14.0中,将删除非高峰时间模式下的旧配置选项。

从DORA指标API的有效负载中删除冗余键/值对

变更日期:2021年6月22日

部署频率项目级别API接口被弃用,用 DORA 4 API取代,它整合了所有的指标下一个API与具体指标为必填字段。14.0中将删除不允许添加将来的扩展并导致性能问题的时间戳字段。一个示例响应为{ "2021-03-01": 3, "date": "2021-03-01", "value": 3 }。第一个键/值("2021-03-01": 3)将被删除,并由后两个("date": "2021-03-01", "value": 3)代替。

删除secret_detection_default_branch作业

变更日期:2021年6月22日

GitLab 14.0中将删除secret_detection_default_branch。

删除成功和失败以完成构建度量标准转换

变更日期:2021年6月22日

GitLab Runner 13.5中, failed并success声明了一项工作。转换success/failure到finished度量标准。在14.0中,将删除该转换。

在自定义执行程序中删除从step_script到build_script的翻译

变更日期:2021年6月22日

在GitLab Runner 13.2翻译step_script到build_script被添加到自定义执行。在14.0中,“build_script”阶段将替换为“step_script”。

Ubuntu 16.04支持

变更日期:2021年6月22日

Ubuntu 16.04将于2021年4月到期,并且不再接收维护更新。建议用户升级到较新的版本,例如20.04。

GitLab 13.12将是支持Ubuntu 16.04的最新版本。

GitLab自建实例,将删除Uninocore支持Puma

变更日期:2021年6月22日

官方不再建议使用Unicore,它将在GitLab 14.0中删除。必须先迁移到Puma,然后再升级到GitLab 14.0。

Web应用程序防火墙(WAF)

变更日期:2021年6月22日

在GitLab 13.6中不推荐使用GitLab的Web应用程序防火墙(WAF)。GitLab 14.0中将从产品中删除WAF。GitLab的WAF具有建筑设计固有的局限性,因此很难满足WAF的传统要求。通过弃用和删除WAF,GitLab将能够集中精力进一步开发产品中可以为用户提供更多价值的其他领域。当前依赖GitLab WAF的用户可以继续使用独立于GitLab的免费和开源modsecurity项目。

默认DAST Spider开始在目标URL上进行爬网

变更日期:2021年6月22日

在GitLab 14.0中,DAST将删除在开始使用Spider时将扫描重置为主机名的当前方法。在GitLab 14.0之前的版本中,抓取工具不会从URL的指定目标路径开始,而是会重置URL以从主机根开始爬网。在GitLab 14.0中,DAST_SPIDER_START_AT_HOST将更改新变量的默认值,false以更好地支持用户意图在指定的目标URL(而不是主机根URL)开始爬网和扫描。

14.0中的GEO外部数据包装器设置删除

变更日期:2021年6月22日

14.0中删除Geo的配置项目:

geo_secondary['db_fdw'] geo_postgresql['fdw_external_user'] geo_postgresql['fdw_external_password'] gitlab-_rails['geo_migrated_local_files_clean_up_worker_cron']

HipChat集成不再可用

变更日期:2021年4月22日

14.0版的GitLab中删除HipChat集成。HipChat在2018年被Atlassian终止。

旧版存储在14.0中的删除

变更日期:2021年6月22日

GitLab 14.0中删除。必须完全迁移到哈希存储。

管道图结构更新

变更日期:2021年5月22日

在13.11中,将不会显示以前显示的作业依赖关系之间的线,这有助于更快地可视化管道。

删除许可证合规性

变更日期:2021年6月22日

在13.0中,弃用了许可证管理CI模板,并将其重命名为“许可证扫描”。通过警告用户切换旧模板,一直在提供向后兼容性。在14.0中,将完全删除许可证管理CI模板。

WIP(进行中的)合并请求术语已弃用

变更日期:2021年6月22日

合并请求的WIP(进行中的工作)重命名为“草稿”,因为它更具包容性且不言自明。WIP术语,将在GitLab 14.0删除。

project-ref-sha repo存档路径删除

变更日期:2021年4月22日

GitLab 10.7添加了project-ref一个路由,该路由通过添加一个返回归档文件的路由来简化打包project-ref。旧版本的project-ref-sha在GitLab 13.11中删除。

升级更新Omnibus版升级

通过Omnibus安装的自建实例可直接使用Linux包管理器可以升级。例如对CentOS:

yum updata/install gitlab-ce

就能自动完成升级:

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(30)

可以通过web页面的帮助中,确认当前版本。

gitlab协议(GitLab13.11发布新增加K8S代理和管道合规等)(31)

docker安装的实例

先停止和删除旧的容器:

sudo docker stop gitlab sudo docker rm gitlab

然后Pull官方最新镜像:

sudo docker pull gitlab/gitlab-ce:latest

重新启动容器(启动参数和以前保持一致)即可,比如:

sudo docker run --detach \ --hostname gitlab-example-com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest

Docker compose安装版本

通过:

docker-compose pull docker-compose up -d

,