Gogs的Docker容器化部署流程遇到的问题
最近在学习CI/CD的一些方案,个人比较青睐容器化轻量级。CI方面一开始是想使用gitlab的,但是发现我自己买的服务器配置太低,内存根本不够(大写的尴尬)。所以采用更轻量级的Gogs,我真的很懒,只有在遇到挫折了才会想着把它记下来,平时很多时候都是没有做笔记的习惯的(吱吱)。这次之所以写这篇笔记,是因为部署Gogs过程遇到了几个小坑,浪费了我不少时间,所以希望能帮助到大家,不要走这样的坑~~言归正传
环境搭建过程
1. 安装部署gogs很简单,网上一大堆帖子,这里不再赘述,简单发下我启动gogs的命令吧:
1 # !/bin/bash
2
3 docker run -d \
4 -p 10080:3000 \
5 -p 10022:22 \
6 --net backend \
7 --name gogs \
8 -v /data/docker/container/gogs/data:/data/gogs/data \
9 -v /data/docker/container/gogs/conf:/data/gogs/conf \
10 -v /data/docker/container/gogs/log:/data/gogs/log \
11 gogs/gogs
简单说明下,端口映射我跟网上大部分帖子一样,都是映射到10080和10022端口,和mysql的连接方式还是使用docker的自定义网卡backend,其他的数据卷自己根据需要映射下呗
2. 启动gogs后接下来就是访问ip+10080端口,首次访问会跳到配置页面
图片是我从网上复制过来的,我使用的mysql是5.6版,所以mysql容器名我叫mysql56
3. 好了,正常情况下是可以了,接下来是我遇到的坑
1. HTTP端口号这里的配置,我当时配置成10080,所以导致了每次容器重启就会访问不了,其实这里填的是docker内部的端口号3000!
2. window7用户,git在使用过程中,使用ssh方式拉取代码,按照网上教程是将本地.ssh目录的id_rsa.pub文件内容复制到gogs后台的安全密钥中,但是还是提示没有权限,后面发现我们需要启动ssh代理并将密钥添加到代理缓存中才可以:
eval `ssh-agent -s` //window用户才需要加eval
eval `ssh-add ~/id_rsa`
然后就可以了,后续如果还有什么问题我再补充吧,我就遇到这两个问题