树莓派硬件和系统信息:
硬件:4B+4G内存+32G tf卡
系统:
安装docker
安装: sudo curl -sSL https://get.docker.com | sh
常用命令:
- 查看版本:
docker -v
- 获取images:
docker pull hypriot/rpi-mysql
,其中hypriot/rpi-mysql
为树莓派版本的mysql,所有docker中支持的images都可以通过pull
简单获取。点这里获取所有images。 - 查看所有已下载的images:
docker images
- 删除docker中的images:
docker rmi 626eb49a4692
,其中626eb49a4692
为待删除的镜像id,删除前必须先把该镜像对应的容器删除。 - 创建容器:
docker run -it --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d hypriot/rpi-mysql
, 其中hypriot/rpi-mysql
为镜像名,一般启动mysql或者gogs都需要指定端口等信息,所有具体要看启动的服务来补充run
的参数。 - 查看正在运行中的所有容器:
docker ps -a
- 停止容器:
docker stop cacbe9e6ba06
,其中cacbe9e6ba06
为容器id。 - 启动容器:
docker run cacbe9e6ba06
- 查看指定容器的日志:
docker logs cacbe9e6ba06
- 系统重启后自动启动docker:
systemctl enable docker.service
- 系统重启,自动docker后,自动启动指定的容器:
docker update --restart=always hypriot/rpi-mysql
。在需要树莓派上电启动后,就自动启动gogs和mysql,就把#11和#12这2条命令执行下即可。 - 删除指定容器:
docker rm cacbe9e6ba06
安装Git
安装:sudo apt-get install git
安装mysql
获取镜像:docker pull hypriot/rpi-mysql
创建容器:docker run -it --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d hypriot/rpi-mysq
安装gogs
获取镜像:docker pull gogs/gogs-rpi
创建容器:docker run -it -d --name gogs --link mysql:db -p 3000:3000 gogs/gogs-rpi
配置gogs(安装时没有截图,所以下面配置的填写都使用文字描述):
- 在树莓派或者远程机器上打开浏览器,输入
http://树莓派ip:3000
,首次Gogs web页面,就会看到设置向导。 - 进行数据库配置:
- 数据库类型:mysql
- 数据库主机:db:3306
,创建容器时,指定了db link到mysql上,所以填写db
加端口即可。
- 数据库用户:root
- 数据库用户密码:root
,创建mssyq容器时指定了root密码为root
- 数据库名称:gogs
注:如果保存时,提示数据库gogs
不存在,就连接树莓派的数据库,在里面新增一个名称为gogs
的数据库,排序规则选择utf8_general_ci
,我这里新建好的数据库配置如下图: - 应用基本设置
- 域名:localhost
- SSH端口号:22
- HTTP端口号:3000
- 应用URL:http://树莓派ip:3000
- 日志路径:/app/gogs/log
- 其他配置
- 最好勾选 服务器和其他服务设置-》禁止用户自主注册,如果有新增用户的需要,使用admin登陆之后,右上角创建新用户即可。
- 创建管理员用户也不是必须的,我这里创建了,创建之后,就通过填写的管理员账户和密码登陆。
之后就可以通过http://树莓派ip:3000,进入gogs页面就可以方便的进行代码管理了。界面和gitlab很像,使用起来没有非常顺畅。
gogs的使用
作为代码管理服务器来说,一般会用到下面这些操作,熟悉gitlab的人可以直接跳过,这里只大概介绍下。
- 创建代码仓库
仓库名字最好是可以和准备上传的本地仓库的名字一致,方便管理。
我是用来管理Python代码的,随意在.gitignore中选择了python
。
授权许可我这因为只有在内网自己使用,所以直接忽略。
使用pycharm和本地仓库关联
- 本地仓库
1) 本地我直接在pycharm中进行设置,先创建本地仓库:
2) 右键项目名,选择远程git
3) 把#2中红框出来的git地址添加到远程的git仓库中
4)到这里远程和本地的git仓库已经对应起来了。代码在本地commit之后,可以直接push到远程,在gogs的web页面就可以看到新提交的代码信息
使用Git命令行和本地仓库关联
简单使用命令就可以把远程仓库的代码下载下来:git clone http://树莓派ip:3000/项目地址
彩蛋
解决树莓派中安装docker之后,每次都需要sudo的问题,操作步骤如下:
- 开启和解锁root用户,并切换到root用户:
- 把pi加入docker的组中
- 重启服务
service docker restart
- 确认pi已经在docker的组中
cat /etc/group
docker:x:995:pi
- 重新锁定root, 切回pi用户。这时,输入docker指令就不需要加sudo啦
sudo passwd --lock root