serversideup/github-cli 是一个通过Docker运行GitHub CLI的轻量级解决方案,支持多操作系统、自定义用户配置及多架构部署,为开发者提供灵活便捷的GitHub命令行工具运行环境。
适用于需要在不同环境中统一运行GitHub CLI的开发场景,尤其适合CI/CD流水线、开发环境标准化、多用户共享环境以及需要精确控制用户权限的场景。
镜像可从Docker Hub和GitHub Container Registry获取:
DockerHub:
GitHub Container Registry:
| 变体 | 镜像大小 |
|---|---|
serversideup/github-cli |
挂载/config目录
为实现GitHub认证,需将主机的~/.config目录挂载到容器的/config目录。该目录通过符号链接关联到非特权用户的主目录,确保即使更改RUN_AS_USER环境变量,仍能保持配置路径的一致性。例如,若将RUN_AS_USER设为bob,则/home/bob/.config会符号链接到/config。
挂载/app目录
/app目录用于挂载工作空间,建议将当前项目目录挂载至此。
SSH配置
SSH相关文件通过/ssh目录管理,该目录会符号链接到用户主目录下的.ssh文件夹,确保SSH配置在不同用户身份下的一致性。
bashdocker run --rm -it \ -v "$HOME/.ssh:/ssh:ro" \ -v "$HOME/.ssh/known_hosts:/ssh/known_hosts:rw" \ -v "$(pwd):/app" \ -v "$HOME/.config/gh:/config/gh:rw" \ -e "PUID=9999" \ -e "PGID=9999" \ -e "RUN_AS_USER=bob" \ serversideup/github-cli:latest gh --version
bashdocker run --rm -it \ -v "$HOME/.ssh:/ssh" \ -v "$(pwd):/app" \ serversideup/github-cli:latest /bin/sh
注意:SSH密钥配置可能较为复杂,尤其是动态设置
RUN_AS_USER时。以下方法可简化配置过程:
/ssh目录
默认情况下,/ssh目录会符号链接到~/.ssh,作为SSH密钥和配置的统一管理目录。设置RUN_AS_USER后,容器会自动在/home/${RUN_AS_USER}创建主目录,并将/home/${RUN_AS_USER}/.ssh符号链接到/ssh。
挂载SSH认证套接字
SSH认证套接字是SSH代理用于进程间通信的Unix套接字,需按以下方式挂载:
macOS:
bashdocker run --rm -it \ -v "$HOME/.ssh:/ssh:ro" \ -v "$HOME/.ssh/known_hosts:/ssh/known_hosts:rw" \ -v "$(pwd):/app" \ -v "/run/host-services/ssh-auth.sock:/run/host-services/ssh-auth.sock" \ -e SSH_AUTH_SOCK="/run/host-services/ssh-auth.sock" \ serversideup/github-cli:latest gh --version
Linux:
bashdocker run --rm -it \ -v "$HOME/.ssh:/ssh:ro" \ -v "$HOME/.ssh/known_hosts:/ssh/known_hosts:rw" \ -v "$(pwd):/app" \ -v "$SSH_AUTH_SOCK:$SSH_AUTH_SOCK" \ -e SSH_AUTH_SOCK="$SSH_AUTH_SOCK" \ serversideup/github-cli:latest gh --version
可通过以下环境变量自定义镜像行为:
| 变量名 | 默认值 | 描述 |
|---|---|---|
PUID | 1000 | 运行GitHub CLI的用户ID |
PGID | 1000 | 运行GitHub CLI的组ID |
RUN_AS_USER | github | 运行GitHub CLI的用户名(会自动创建为非特权用户) |
DEBUG | false | 启用容器启动调试输出 |
作为开源项目,我们欢迎社区贡献。您可以通过以下方式参与:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务