第二篇 chatgpt-on-wechat项目 Docker部署问题 build.alpine.sh文件内容解读

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

# fetch latest release tag
CHATGPT_ON_WECHAT_TAG=`curl -sL "https://api.github.com/repos/zhayujie/chatgpt-on-wechat/releases/latest" | \
     grep '"tag_name":' | \
     sed -E 's/.*"([^"]+)".*/\1/'`

# build image
docker build -f Dockerfile.alpine \
             --build-arg CHATGPT_ON_WECHAT_VER=$CHATGPT_ON_WECHAT_TAG \
             -t zhayujie/chatgpt-on-wechat .

# tag image
docker tag zhayujie/chatgpt-on-wechat zhayujie/chatgpt-on-wechat:alpine
docker tag zhayujie/chatgpt-on-wechat zhayujie/chatgpt-on-wechat:$CHATGPT_ON_WECHAT_TAG-alpine

上面的脚本介绍

这个指令组用于自动化构建 Docker 镜像的过程

  1. 用 curl 命令获取 GitHub 上发布的最新版本的标签。
  2. 使用 Dockerfile.alpine 文件构建 Docker 镜像并将变量 CHATGPT_ON_WECHAT_VER 设置为最新标签。
  3. 标记构建后的 Docker 镜像为 zhayujie/chatgpt-on-wechat 和 zhayujie/chatgpt-on-wechat:$CHATGPT_ON_WECHAT_TAG-alpinealpine
    是基础镜像的名称

指令1 sed -E ‘s/.“([^”]+)"./\1/’ 指令解析

这个指令是一个基于正则表达式的替换命令其作用是从输入文本中匹配所有双引号"之间的文本然后用匹配到的文本替换整个匹配项。具体来说该表达式的含义如下

  • s表示 “substitute”的缩写表示替换命令。
  • /用于分隔表达式的开始和结束。
  • .*匹配零个或多个任意字符。
  • "匹配双引号“。
  • ([^"]+)匹配一个或多个不是双引号的字符并将其分组为一组。
  • \1用第一个匹配分组也就是 ([^"]+)替换整个匹配项即保留双引号之间的文本。

指令2 curl -sL “https://api.github.com/repos/zhayujie/chatgpt-on-wechat/releases/latest” 指令解析

这是一个 cURL 命令用来获取 GitHub 上一个名为 chatgpt-on-wechat 的仓库的最新 Release
的信息。具体解释如下

  • curl 使用 cURL 工具发送 HTTP 请求
  • sL 参数表示让 cURL 静默执行不显示进度或错误信息并自动重定向
  • https://api.github.com/repos/zhayujie/chatgpt-on-wechat/releases/latest":
    GitHub 的 REST API 的地址指向 zhayujie/chatgpt-on-wechat 仓库的最新
    Release其中 https://api.github.com 是 API
    的基础地址repos/zhayujie/chatgpt-on-wechat/releases/latest 表示获取该仓库的最新
    Release 相关信息。需要注意的是最新 Release 并不一定是最新版本可能只是最新的一个版本发布记录。
  • 最终会返回该仓库最新 Release 的 JSON 格式信息。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: ChatGPTDocker