1. 背景
利用docker部署了gitlab,忘记对ssh的22端口进行映射
docker pull gitlab/gitlab-ce
docker run \
--detach \
--publish 80:80 \
--name gitlab \
--privileged=true \
--restart always \
-v /opt/gitlab/etc:/etc/gitlab \
-v /opt/gitlab/log:/var/log/gitlab \
-v /opt/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
这里只是记录我的配置文件的挂载点,详细使用docker搭建gitlab戳下面
https://www.cnblogs.com/zuxing/articles/9329152.html
然后发现ssh_key之后还是需要输入密码
2. 解决
思路:将服务器的2222端口映射到docker容器的22端口
删除之前的容器,重新run一个容器进行端口映射
docker run \
--detach \
--publish 2222:22 \
--publish 80:80 \
--name gitlab \
--privileged=true \
--restart always \
-v /opt/gitlab/etc:/etc/gitlab \
-v /opt/gitlab/log:/var/log/gitlab \
-v /opt/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
vi /opt/gitlab/etc/gitlab.rb
添加下面一行内容
gitlab_rails['gitlab_shell_ssh_port'] = 2222
注意这里虽然改了端口为2222,但是端口映射时,还是要映射到容器的22端口
个人猜测这里的修改应该是仅作为复制项目地址时端口变为2222方便操作,如下图
进入容器,执行命令,使其配置生效
docker exec -it gitlab bash
gitlab-ctl reconfigure
退出容器
Ctrl+D
img1.png
这样 git clone ssh://git@192.168.66.66:2222/example/example.git
就能使用了
网友评论