惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】
量子位
有赞技术团队
有赞技术团队
博客园 - 三生石上(FineUI控件)
博客园 - Franky
M
MIT News - Artificial intelligence
U
Unit 42
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
J
Java Code Geeks
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
MyScale Blog
MyScale Blog
T
Tailwind CSS Blog
T
The Blog of Author Tim Ferriss
V
V2EX

任霏博客

我将关闭服务器:AI彻底掐死了奄奄一息的个人博客 - 博客文章 - 任霏的个人博客网站 Vibe Coding 实现本地模型 Token 自由 IntelliJ IDEA + LM Studio + LM Link + Continue - 博客文章 - 任霏的个人博客网站 1Password涨价后,别急着退订1Password,这个操作能帮你省25% - 博客文章 - 任霏的个人博客网站 我,吃饱了撑的注册了个域名,Cloudflare账号没了,不建议将域名放在Cloudflare - 博客文章 - 任霏的个人博客网站 临时邮箱:保护隐私与免骚扰的新方式 - 博客文章 - 任霏的个人博客网站 价值4100万美元SOL被盗SwissBorg在Solana上遭遇安全事件超200万枚ETH排队退出质押 - 博客文章 - 任霏的个人博客网站 注意 Web3 钱包遭遇 NPM 超大规模供应链攻击投毒事件 - 博客文章 - 任霏的个人博客网站 我受到以太坊ERC-20假代币地址投毒攻击记录一下大家谨防上当受骗 - 博客文章 - 任霏的个人博客网站 在2025年使用显卡 NVIDIA RTX 2080 Ti 挖矿收益记录和分析还能不能挖矿 - 博客文章 - 任霏的个人博客网站 分享我是如何成功戒烟的经验(包含失败的经验) - 博客文章 - 任霏的个人博客网站 在 OpenWRT 中配置 PassWall2 插件的教程记录 - 博客文章 - 任霏的个人博客网站 Office Professional Plus 2019 VL 版下载与 KMS 激活 - 博客文章 - 任霏的个人博客网站 最近几天我的 CDN 流量受到来自电信[山东烟台]、[江苏扬州]两地家庭宽带的攻击 - 博客文章 - 任霏的个人博客网站 自建AI服务器使用PVE配置显卡直通虚拟机安装驱动、CUDA和cuDNN运行LLM大模型进行AI炼丹 - 博客文章 - 任霏的个人博客网站 各代英特尔Intel芯片组主板适配兼容的CPU和DDR内存数据统计 - 博客文章 - 任霏的个人博客网站 GitLab Global 国际站将在60天内删除中国大陆、香港、澳门地区的账号 - 博客文章 - 任霏的个人博客网站 Github Copilot Free 开放免费版所有人均可使用 OpenAI GPT-4o、Anthropic Claude 3.5 AI 代码生成服务 - 博客文章 - 任霏的个人博客网站 Cloudflare 更新了订阅协议明确禁止优选IP和搭建梯子的行为 - 博客文章 - 任霏的个人博客网站 Linux(systemd)手动离线安装二进制(binary)MairaDB数据库指定版本 - 博客文章 - 任霏的个人博客网站 流程引擎 Flowable/Activiti 无法启动报错:liquibase - Waiting for changelog lock.... - 博客文章 - 任霏的个人博客网站 Spring Boot 全局异常捕获 ControllerAdvice 无法捕获 过滤器(Filter)和拦截器(Interceptor)中的异常 - 博客文章 - 任霏的个人博客网站 Freenom 收回了全部免费域名(.tk/.cf/.gq/.ga/.ml) - 博客文章 - 任霏的个人博客网站 Alibaba Druid 数据库连接池 takeLast() AQS 死锁导致程序无响应 - 博客文章 - 任霏的个人博客网站 你的网站加入 HSTS preload 预加载列表了吗 - 博客文章 - 任霏的个人博客网站 我的博客网站接入使用 Cloudflare 的架构分享 - 博客文章 - 任霏的个人博客网站 在 Ubuntu 上的 Nginx 高并发配置实践 - 博客文章 - 任霏的个人博客网站 技术分析黑客敲诈勒索站长的新手法百度对此也无能为力 - 博客文章 - 任霏的个人博客网站 百度站长平台快速收录权限和sitemap提交权限被全部收回 - 博客文章 - 任霏的个人博客网站 极狐 GitLab 免费时代结束不升级付费账号将禁止登陆 - 博客文章 - 任霏的个人博客网站 免费.ml域名10年委托合同到期被马里共和国收回域名经营权 - 博客文章 - 任霏的个人博客网站
极狐GitLab上的Building风云 - 之Docker风云必胜 JIHULAB 101...
任霏 · 2022-03-20 · via 任霏博客

接上一篇《极狐GitLab上的Building风云 - 之Java Maven雄霸天下》内容《Docker风云必胜》。

小白在极狐GitLab溜达的时候,又碰到了总舵主,赶紧拉住总舵主,上次说要教我Docker缓存优化,赶紧给我讲讲吧。

舵主:好吧,你还挺好学的,你知不知道咱们极狐GitLab天地会有Package仓库,用来管理制品的?

小白:当然知道啦,只是我没有使用过,这个可以怎么玩?

Package仓库

舵主开始给小白介绍极狐GitLab天地会的Package仓库:咱们Package仓库分两部分,Package和Container,我分别讲一下。

  • Package,可以存放我们打包好的制品,由于每个人修炼的武功并不相同,所以我们支持Maven、npm、NuGet、PyPI、Generic packages、Composer、Conan、Helm、Debian、Go、Ruby gems多种包注册。

  • Container,可以存放Docker镜像,无论是你自己Build的镜像还是你Pull的公共镜像,都可以 Push 到咱们的仓库中。

Pipeline优化

小白啊,上次我说到可以缓存优化,你之前写的例如centos:centos7,默认是去Docker Hub拉取镜像,这得依靠国际驿站网络,国际驿站太慢了,所以经常会超时,如果你先把国际驿站的 Docker Image Pull 下来,再 Push 到咱自己的仓库里,使用的时候是不是就飞快了?

所以,我们先把官方 Docker Hub 的拉取下拉,再推送到咱们自己的仓库,我举个例子,我自己维护的 https://jihulab.com/docker/hub 仓库,前面加上 registry.jihulab.com/docker/hub/,那么你之前写的单元测试阶段就可以改为:

stages:
  - test
test:
  stage: test
  image: registry.jihulab.com/docker/hub/centos:centos7
  services:
    - name: registry.jihulab.com/docker/hub/mariadb:10.6.5
      alias: "mariadb"
    - name: registry.jihulab.com/docker/hub/redis:6.0.1
      alias: "redis"
    - name: registry.jihulab.com/docker/hub/elasticsearch:7.17.0
      alias: "elasticsearch"
      command: [ "bin/elasticsearch", "-Expack.security.enabled=false", "-Ediscovery.type=single-node" ]
  variables:
    MARIADB_DATABASE: renfeid
    MARIADB_ROOT_PASSWORD: root
  before_script:
    - yum install -y wget java-1.8.0-openjdk* which
    - curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
    - rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    - yum install -y MariaDB-server galera-4 MariaDB-client MariaDB-shared MariaDB-backup MariaDB-common
    - mariadb --user=root --password="$MARIADB_ROOT_PASSWORD" --host=mariadb $MARIADB_DATABASE
      < environment/db/renfeid.sql --default-character-set=utf8
  script:
    - ./mvnw test -P gitlab -s environment/maven/settings.xml

这样就从咱自己仓库中获取镜像了,是不是快很多?

注意:你要注意Repo仓库的可见性,Package仓库默认跟随Repo仓库可见性,如果你是open开放的仓库,默认Package仓库也会被公开下载,如果要修改就去Settings总舵设置Container的可见性。

小白说:果然快很多,谢谢总舵主指点。那既然可以存Docker镜像,是不是我可以在这里构建我自己的镜像,作为私有的Docker Hub了?

总舵主:当然了,这也是极狐GitLab提供的服务之一,你那么聪明,快去试试吧。

在上一篇的基础上再增加一个stages阶段:release发布阶段,构建Docker Image并发布到极狐GitLab Container仓库中。

经过小白一番探索,Dockerfile 就不说了,直接在上一篇文章基础上写 .gitlab-ci.yml,内容如下:

stages:
  - release
release:
  stage: release
  image: docker:latest
  services:
    - docker:dind
  script:
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG .
    - docker login --username=$CI_REGISTRY_USER --password=$CI_REGISTRY_PASSWORD $CI_REGISTRY_IMAGE
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
  dependencies:
    - package

以上内容解析:先选择 docker:latest 为运行环境,然后以 docker:dind 为基础镜像进行 Build 构建,$CI_COMMIT_TAG 就是获取 Git 中的 Tag 标签。

经过小白努力尝试,终于成功了,然后在自己的服务器上注册 registry.jihulab.com,就可以拉取 Docker Image 啦,看看我的成果:

Docker仓库Docker容器

到这里武功秘籍基本已经完善了,小白有点蠢蠢欲动,想去江湖上比划一下,这个时候被舵主拦住了,舵主说:小白啊,虽然你进步很快,但你知道不知道你的武功秘籍里可能有破绽,例如漏洞或弱点,咱天地会极狐GitLab也可以帮你审查漏洞哦,今天又不早了,我还要回总舵去开会,下次给你讲吧。

未完,后续请期待《极狐GitLab上的Building风云 - 之Security风云再起》。