这个问题是给gogs前面加了nginx起https发生的,报错如下:
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large
用https://stackoverflow.com/questions/7489813/github-push-error-rpc-failed-result-22-http-code-413 的办法添加 “client_max_body_size 50m;”解决。
注:
1.以前没给gitlab前置nginx起https,但是这个只设置nginx就解决问题,估计是nginx的问题。
2.client_max_body_size默认1m
3.client_max_body_size可以加载server或者http内,建议加在server内,减少影响范围。
4.大小根据自己的设置。
之前用Docker的方式在阿里云给公司部署了1台Gitlab CE,当时觉得部署起来很简单方便。这次公司要把这个git迁移会IDC,记录过程如下:
1.暂停老服务器的服务
docker stop gitlab
2.迁移数据
进入新服务器的/srv目录,sftp到老服务器,执行get –r /srv/gitlab /srv
-r参数会把整个目录都拿下来
3.新服务器启用安装docker
略
4.下载gitlab-ce镜像
略
5.运行容器
按照https://docs.gitlab.com/omnibus/docker/ 中 Run the Image章节运行。
6.迁移预处理
docker exec -it gitlab update-permissions
docker restart gitlab
再重启之后,重新对域名做解析,gitlab服务就正常了。
另,gitlab文档说更换image的版本,可以实现升级,有闲的兄弟可以试试,哈哈
我不知道多少人会像我一样在家里使用Docker来跑GitLab,如果真有,那么一定会与到和我一样的问题。我遇到的问题比较简单:宽带运营商不开放80端口,GitLab的Docker镜像默认只支持80端口。外网端口直接端口映射可以用,但是在gitlab的网站里面看到git的clone路径的端口是有问题的,或者地址也是内网的。
解决这个问题需要预先确定准备使用什么域名和端口。首先需要一个动态域名,老tp-link路由器可以使用花生壳,新的tp-link路由器可以用tp-link提供的动态域名,比如现在有一个叫 xx456.tpddns.cn的域名。然后需要确定使用什么端口,比如我映射在2080上。那么我们可以用如下的命令创建一个Docker容器:
docker run \
-e GITLAB_OMNIBUS_CONFIG="external_url 'http://xx456.tpddns.cn:2080’;” \
–p 22:22 –p 2080:2080 \
--name gitlab \
--restart always \
-v /srv/docker/gitlab/config:/etc/gitlab \
-v /srv/docker/gitlab/logs:/var/log/gitlab \
-v /srv/docker/gitlab/data:/var/opt/gitlab \
-d gitlab/gitlab-ce:latest
其中
- 如果你不准备使用ssh访问gitlab里面的git的话,那个22端口的映射也可以去掉。
- 环境变量GITLAB_MNIBUS_CONFIG里面的external_url就是gitlab提示的地址,gitlab会自动判断是使用http还是使用https,自动判断是使用默认端口,还是其中配置的接口。
现在LAN用ip访问一下,然后再在路由器上做外网2080端口到docker所在服务器192.168.1.2的2080端口的映射。这样无论以后在外网还是内网,都可以使用http://xx456.tpddns.cn:2080来访问这个docker容器中的gitlab了。
注意:不知道什么原因,这种方式做的gitlab容器,会比默认情况下创建的gitlab启动的要慢,也就是docker容器重启以后,由starting到health状态花费的时间要多,初步估计会多30%到50%,但是运行起来之后没有区别。
近期评论