最简单的 QNAP 威联通 NAS 安装 git 办法

本贴最后更新于 305 天前,其中的信息可能已经物是人非

原文发布于:最简单的 QNAP 威联通 NAS 安装 git 办法,欢迎使用 RSS 订阅获取最新更新。

前言

在网上找了好几个解决方法都不是很好,

比如:[NAS][QNAP][Git] 如何在 QNAP NAS 上安裝 Git server

Install git on qnap

Install Git on QNAP QTS

qnap-git-server

How to install software such as git and python?

如何在 NAS 上安装 Git Server

这些方法的安装都不适合我,要么太复杂,需要自己手动编译 git,要么在 App Center 找不到他说的应用,或者信息已经过时,5,6 年前的内容了。

通过 docker 构建临时的 git container

解决办法也其实很简单,我想到既然威联通能用 docker,docker 使用一个临时的 git container 不就行了,~/.ssh 下的 id_rsa.pub 和 git 是解耦合的,所以我一搜还真有人这么实现了,发现果然是可以的。

image 是这个:https://hub.docker.com/r/alpine/git

在这个页面人家也说的很清楚,在 Alpine Linux 中运行的一个有用的简单 Git 容器,尤其是对于没有包装管理器的 Rancheros,例如 Rancheros。

就是为了处理包管理器很烂的情况或者完全没有包管理器的情况。

https://runnable.oss-cn-guangzhou.aliyuncs.com/blog/2023-06-26-142659.png

这里我就直接翻译一下,他原本的教程说的很详细。

这里推荐大家使用可选方案 1,很简单。

教程翻译

docker-git-alpine

在 Alpine Linux 中运行的一个有用的简单 Git 容器,尤其是对于没有包装管理器的 Rancheros,例如 Rancheros。

Github Repo

https://github.com/alpine-docker/git

travis CI build logs

https://travis-ci.org/alpine-docker/git

Docker image tags

https://hub.docker.com/r/alpine/git/tags/

使用方法

docker run -ti --rm -v ${HOME}:/root -v $(pwd):/git alpine/git <git命令>

例如,如果你想要克隆某个仓库,你可以直接执行

docker run -ti --rm -v ${HOME}:/root -v $(pwd):/git alpine/git clone https://github.com/alpine-docker/git.git

可选方案 1:

为了方便大家直接使用 git,在 ~/.bashrc 或 ~/.profile 中增加一个 git 函数

function git () {
    (docker run -ti --rm -v ${HOME}:/root -v $(pwd):/git alpine/git "$@")
}

然后使用 source ~/.profile 刷新一下环境变量

例如,你想要克隆这个仓库,因为你已经在环境变量中配置了这个函数,所以你可以直接在本地运行 git 命令

git clone https://github.com/alpine-docker/git.git

可选方案 2:

alias git="docker run -ti --rm -v $(pwd):/git -v $HOME/.ssh:/root/.ssh alpine/git"

注意:

  • 你需要在不同仓库之间重新定义(重新运行)该命令别名。
  • 你需要在 Git 仓库的根目录下运行此别名命令。

例如:

$ cd application
$ alias git="docker run -ti --rm -v $(pwd):/git -v $HOME/.ssh:/root/.ssh alpine/git"
$ git clone git@github.com:YOUR_ACCOUNT/YOUR_REPO.git
$ cd 你的仓库路径
$ alias git="docker run -ti --rm -v $(pwd):/git -v $HOME/.ssh:/root/.ssh alpine/git"
# 编辑了多个文件
$ git add . 
$ git status
$ git commit -m "test"
$ git push -u origin master

协议

支持 git,http/https,和 ssh

参考:Refer: Git on the Server - The Protocols

自动构建

将 Travis CI 设置为每月执行构建.

  • 使用最新的 Alpine 镜像构建
  • 在 Alpine 镜像中使用最新的 Git 进行构建
  • 为此镜像生成新标签
  • 将 Git 的版本作为镜像标签生成 (v${GIT_VERSION})
  • 更新此镜像的最新标签
  • 威联通
    2 引用
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    205 引用 • 357 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...