概述
使用docker已经有一年多了,最近意识到,我在快速编排服务的时候,shell脚本里用到的git还是原生的
于是打算也将git容器化,在dockerhub上搜罗了一筐,找到这个镜像下载量比较高
进去看了dockerfile后,感觉不太适合需求
这里没有提供卷,也没有提供ssh,既不能把仓库映射到宿主机,也没有提供clone私有仓库的功能(小声bb:都可以做到,但是不方便)。其他的gitclient镜像也都大同小异。
镜像地址
本文的镜像以push到dockerhub,有需要可直接使用: https://hub.docker.com/r/wuliangxue/git
轮子
首先需要一个dockerhub的账户,然后在服务器上使用docker登录,以便于把镜像push到dockerhub仓库,为日后迁移时提供便利。
随便在一个目录下,创建git.dockerfile文件
在dockerfile文件中,输入以下内容
这里简单说一下,原先提供了一个基于ubuntu 18.04的镜像,但是体积太大了,所以换成了alpine。国内用户需要把Linux 软件源切换成国内的镜像,否则在安装软件时,会出各种问题。这个镜像本身是为了clone项目,所以只安装git和ssh。后面就是为了clone私有仓库做准备,并且开放对应的ssh目录卷。由于设置了工作目录,因此git clone时默认项目是在/git/repo
这个目录下,使用镜像时,挂载这个目录即可。
构建镜像
输入命令: docker build -t wuliangxue/git:0.1-alpine -f git.dockerfile .
出现Successfully时,代表镜像构建成功
这里比较一下基于ubuntu 18.04构建的镜像大小,标签为0.1的是基于ubuntu 18.04构建的【187M】,标签为0.1-alpine是基于alpine:3.12构建的【30.1M】
使用镜像
首先,使用刚才构建的镜像clone一个公有仓库,执行下面的命令
docker run --rm --name git -v "$(pwd)":/git/repo wuliangxue/git:0.1-alpine git clone https://github.com/docker-library/mysql.git
这个仓库被clone下来了。
如果你想查看clone的细节,可以在刚才的那条命令中,加上-it
docker run -it --rm --name git -v "$(pwd)":/git/repo wuliangxue/git:0.1-alpine git clone https://github.com/docker-library/mysql.git
当需要clone私有仓库时,该怎么办呢??
可以把ssh公私钥挂载到容器中。
执行下面的命令【注意,为了演示,公私钥我直接放在了当前目录下了】
docker run -it --rm --name git -v "$(pwd)":/git/repo -v "$(pwd)/id_rsa":/root/.ssh/id_rsa -v "$(pwd)/id_rsa.pub":/root/.ssh/id_rsa.pub wuliangxue/git:0.1-alpine git clone git@gitee.com:wuliangxue/douyu.git
注意,这里必须加参数-it
,因为第一次clone私有仓库时,git不知道这个地址的真实性(known_hosts文件没有记录,第一次使用也没有这个文件),因此会询问,如果没有参数-it
,没有开启终端交互功能,那么clone将会直接失败。
输入yes,回车即可把私有仓库clone下来。
最后,再把这个轮子push到dockerhub,以便下次换服务器时,直接pull使用。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。