最简单的QNAP威联通NAS安装git办法
前言
在网上找了好几个解决方法都不是很好,
比如:[NAS][QNAP][Git] 如何在QNAP NAS上安裝Git server
How to install software such as git and python?
这些方法的安装都不适合我,要么太复杂,需要自己手动编译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${GIT_VERSION})
- 更新此镜像的最新标签