最后编辑于: 2019-08-16 16:23 | 分类: linux | 标签: docker 树莓派 git | 浏览数: 2894 | 评论数: 0
设备: raspberry pi 3B E14
环境: Raspbian GNU/Linux 9 Stretch
Gogs简介
Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用Go语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
关于docker的安装
见另一篇树莓派上安装Docker的日志, 这里不再赘述.
用docker安装Gogs
参考文章:
我没有采用网上很多文章中 '用一个docker run命令即下载image又启动容器的方式', 而是使用官方github的readme中多步命令的方式来安装, 毕竟我是新手吗, 一步步来稳妥些.
Pull image from Docker Hub
docker pull gogs/gogs-rpi
注意: 我用的镜像名为gogs/gogs-rpi, 这是gogs官方专门为树莓派做的镜像, 我去dockerhub网站查了一下, 这个镜像还时常在更新.
在本地创建个目录给容器使用
mkdir -p /var/gogs
将容器run起来
docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs-rpi
下面用我有限的docker知识稍加解释一下这条命令:
gogs/gogs-rpi
--name=gogsgogs
-p 10022:22-p 10080:3000
-v /var/gogs:/data
此命令输入时候, 稍等几秒之后,
http://树莓派的内网IP:10080
关于初始配置
sqlite
localhost
配置好后, 点击安装, 很快gogs就安装完毕. 注册用户, 登陆, 创建git仓库, 之后都是git的老一套, 就不赘述了.
Run起来的容器的停止 与 启动
docker runctrl+c
想让容器再次启动, 可用下面的命令:
docker start gogs
gogs
其他关于更多docker的命令, 可参照这里的电子书, 这里就不赘述了.
SSH遇到的问题
满心欢喜的建好了git代码仓库, 以为git已经熟门熟路, 当我想将本地的库push上去时, 却一直不成功, 提示 权限不够.
我也已经将电脑里的ssh密钥 添加到了 gogs中的用户密钥中, 还是不行.
折腾了一会儿, 偶然在一篇文章中发现, 可能是我git remote添加的远程库有问题.
我一开始添加的远程库如下:
git remote add origin git@192.168.1.2:10022:username/xxx.git
:10022:leiad
后来看到了下面这种行之有效的方法:
git remote add origin ssh://git@192.168.1.2:10022/username/xxx.git
使用了之后, 已经顺利的push了.
容器的开机自启动
我们部署的环境是树莓派, 树莓派难免会断电重启, 那如何让我们的容器开机自启动呢?
--restart=always
使用上有2种方法:
docker run--restart=always
docker run --name=gogs --restart=always -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs-rpi
- 对于已经创建好的容器,没必要重新删除容器再重新run,通过docker update命令设置即可,如下:
docker update --restart=always gogs
其中, gogs是已有容器的name.
docker startdocker update