说是外壳,因为确实,portus是在docker registry前边加了一道验证防线。我们过去使用简单的http relam进行验证,就是htpasswd,简单,但是在中型团队中,就不大好使了。
今天测试了下portus,我擦,gitclone后,直接compose-setup.sh就会开始安装和运行,但是踩了几个坑,直让我觉得 这老外的脑袋确实不一样。
SSL到底用不用
运行后,打开web界面,3000端口的那个,输入reg,然后reg.ops.ac.cn(我们的私有registry),这个地方到底选SSL还是不选。不管你选不选,反正我是没有check过,最终发现,不选才能push到仓库。不选~~ 不选~~ 不选
为啥要自带一个registry
为啥要自带registry呢,而且一般大伙都已经有了registry,真是一键安装呀。
registry貌似在v2之后就可以用realm进行调用,我不懂这个玩意儿,看配置
下面的配置,是在本地跑portus,本地跑自带的registry的registry配置,比我的基于http basic验证的registry多了auth和notify。
version: 0.1
storage:
filesystem:
rootdirectory: /registry_data
delete:
enabled: true
http:
addr: 0.0.0.0:5000
debug:
addr: 0.0.0.0:5001
tls:
certificate: /root/Portus/compose/registry/keys/portus.crt
key: /root/Portus/compose/registry/keys/portus.key
auth:
token:
realm: http://portus.ops.ac.cn:3000/v2/token
service: portus.ops.ac.cn:5000
issuer: portus.ops.ac.cn
rootcertbundle: /etc/docker/registry/portus.crt
notifications:
endpoints:
- name: portus
url: http://portus.ops.ac.cn:3000/v2/webhooks/events
timeout: 500ms
threshold: 5
backoff: 1s
自用的registry配置
version: 0.1
log:
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
调了几个小时,把push这关给过了,不过notify还不行
黑盒测试真实爽呀,紧张的都睡不着觉了
说不选SSL吧,看下面,主动送上门来了
2016/11/28 15:34:45 http: TLS handshake error from 192.168.3.123:44824: tls: first record does not look like a TLS handshake
2016/11/28 15:44:45 http: TLS handshake error from 192.168.3.123:45738: tls: first record does not look like a TLS handshake
重新测试下
哈哈,刚才说的话好多都放屁了, 即使是开启SSL的情况,也是可以push成功的哦,直接用web账号密码,不用生成一次性密码也是可以push成功。
擦来,真神奇,不过push功能貌似不大好用。等待下,因为我发现,在安装完后的1个小时后,portus主动联系registry,貌似想拉仓库metadata。