docker gitlab 如何git clone?
問題描述
它給的SSH和http地址是這樣的:
git@6b30d4a6a162:compontent/gitlab-test-component.githttp://6b30d4a6a162/compontent/gitlab-test-component.git
6b30d4a6a162是gitlab的container Info的ID的一部分:
6b30d4a6a16279326a135ee2c7bf7b20094b3199a299ac6345735dd3
我通過上面兩個地址都無法git clone。
因為我用virtualbox簡單的做了一下端口映射,所以我嘗試用
git clone http://localhost:8100/compontent/gitlab-test-component
但會報錯:500
有知道的嗎?
另外想問一下,ssh-key是不是只要生成一次就行了,可以到處放github、gitlab,或者其他地方的,都是同一份?
問題解答
回答1:因為host的22端口已經(jīng)被占用了
在docker run 的時候?qū)ontainer的22端口映射到host的其他端口如2222
docker run gitlab -p 2222:22
需要在 gitlab 的配置文件里指定url
# 修改 /etc/gitlab/gitlab.rb 文件第一行external_url ’http://192.168.1.23/’
這樣在項目倉庫里顯示出來的就是
git@192.168.1.23:2222/shadowsocks/shadowsocks.git
然后就能使用git了
git clone git@192.168.1.23:2222/shadowsocks/shadowsocks.git
這時候需要在開發(fā)機(jī)器上配置 .ssh/config 文件,才能正常使用
以下是一個使用 docker 運(yùn)行g(shù)itlab的例子
docker run --name=’gitlabend’ --link gitlab_mysql:mysql --link gitlab_redis:redisio -e ’GITLAB_PORT=10080’ -e ’GITLAB_SSH_PORT=10022’ -p 10022:22 -p 10080:80 -e ’GITLAB_HOST=xxxx’ -e ’GITLAB_EMAIL=user@mail.com’ -e ’SMTP_ENABLED=true’ -e ’SMTP_DOMAIN=qq.com’ -e ’SMTP_HOST=smtp.exmail.qq.com’ -e ’SMTP_PORT=25’ -e ’SMTP_STARTTLS=false’ -e ’SMTP_USER=user@mail.com’ -e ’SMTP_PASS=password’ -e ’SMTP_AUTHENTICATION=login’ -v /opt/gitlab/data:/home/git/data -v /opt/gitlab/log:/var/log/gitlab sameersbn/gitlab:latest回答2:
用法有問題吧,肯定不是用docker的container name 做域名啊,你要綁一個域名或者用ip+端口訪問才能clone的。
回答3:@Tairy ,話說我上面不是用了域名+端口嗎?
就是localhost:8100啊,但它會報500錯誤。。
你能說一下你的綁定是怎么綁嗎?
相關(guān)文章:
1. Java后端需要掌握angular.js嗎?是主要在后臺的前臺用嗎?2. 【python小白】 問關(guān)于導(dǎo)入嵌套的包的問題3. nginx和web服務(wù)都跑在docker容器里時,nginx負(fù)載均衡如何配置服務(wù)的IP地址4. html5 - 使用canvas的fillText方法寫文字時,坐標(biāo)的問題。5. Java 中的synchronized鎖代碼塊的時候需不需要這個類是單例6. angular.js - angular2 有什么cool的loading組件么?7. javascript - nodejs關(guān)于進(jìn)程間發(fā)送句柄的一點(diǎn)疑問8. 一個阿里云的服務(wù)器,可以部署兩個javaweb項目嗎?兩個項目域名不同9. javascript - vue2.0動態(tài)加載多個相同組件,給組件中的data輸入不同的值,關(guān)閉非最后一個組件時,銷毀的值是最后一個組件值。10. javascript - 如何判斷一個點(diǎn)是否在svg一個閉合的路徑中?
