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

前言

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

比如:[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。

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

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

这里推荐大家使用可选方案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 [email protected]: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$)
  • 更新此镜像的最新标签
# nas  QNAP  威联通  git 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×