用nginx代理docker部署的gitlab服务

一般咱们不会去暴露很多端口给外面,所以部署完gitlab后,我希望能够用nginx来代理我们的gitlab服务。

gitlab的docker部署参考这个大佬的文章
https://developer.aliyun.com/article/922952

我想做到下面这个结构,理想很美好,但是ssh的代理好像需要用到steam这个功能,我的nginx没有装这个,就懒得改了。而且好像ssh的代理到头来还是需要一个端口,那就和我减少端口暴露的初衷不一样了,所以最后只做了网页的proxy。
在这里插入图片描述

nginx.conf:
咱们主要用到nginx的proxy_pass这个配置。

     location  /git_index {
            proxy_pass http://127.0.0.1:10008;
        }

gitlab.rb:
主要是需要给我们的链接都添加一个前缀,让各个跳转链接都能正常识别。

external_url 'http://192.168.119.128/git_index/'
# external_url 'http://你的ip/对应的链接识别url/'

密码重置

docker部署的初始密码在重新启动后就不能用了。
所以需要手动进控制台修改密码,修改步骤如下。

https://docs.gitlab.com/ee/security/reset_user_password.html

1.打开console
docker exec -it gitlab-rails console

2.查询用户

user = User.find_by_username 'root'
user.password = new_password
user.save!
exit

docker0网卡异常

上传的虚拟机镜像被运维关掉了docker0网卡。
导致我的容器没办法链接网络,需要重启docker0。
可以根据下面这个操作来。

pkill docker 
iptables -t nat -F 
ifconfig docker0 down 
brctl delbr docker0 
docker -d 
systemctl restart docker
brctl delbr docker0 

这一步遇到问题:
brctl未安装,需要安装了bridge-utils。

离线安装apt的包

顺便研究了一下如何离线下载安装apt包(源网页信息错漏百出。。):
https://www.jianshu.com/p/434a50c6c0ed

找到依赖的包

apt-cache depends packname

下载指令(-d即下载指令):

apt-get install dependpackname --reinstall -d

然后这个文章竟然没有说包下载到哪里去。。。
下载包目录:

/var/cache/apt/archives/

最后他说,以下指令我没有测试,因为bridge-utils没啥依赖,下面的指令还请自行测试。

再次,批量安装。用shell命令组合来一键下载所有所依赖的包。

#有些包名中有<>符号,用tr将其删除
sudo apt-get install --reinstall -d `apt-cache depends packname | grep depends | cut -d: f2 |tr -d "<>"`
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐