private なリポジトリの作り方をちょこちょこまとめていこう
docker-registry
mac 上で、boot2docker を利用してprivate なregistryを作ってみた
- 前準備として、これからつくるregistryをinsecure-registryに登録しておく
$ boot2docker up
$ boot2docker ssh
$ echo 'EXTRA_ARGS="--insecure-registry 192.168.59.103:5000"' | sudo tee -a /var/lib/boot2docker/profile
$ sudo /etc/init.d/docker restart
- docker-registry をインストール・起動 (/var/lib/boot2docker にしとかないと、boot2docker の再起動で消えます)
$ docker pull registry
$ docker run -d -p 5000:5000 -v /var/lib/boot2docker/registry:/tmp/registry registry
ブラウザで、http://192.168.59.103:5000 にアクセスして、"\"docker-registry server\""が表示されることを確認
(なんかしてたら、一回目起動に失敗するようになった。これっぽい https://github.com/docker/docker-registry/issues/892 )
- golang のimage があったので、試しに登録してみた
$ docker tag golang:1.3 192.168.59.103:5000/golang:1.3
$ docker push 192.168.59.103:5000/golang:1.3
ブラウザで、http://192.168.59.103:5000/v1/search にアクセスして、golang があることを確認
RPM リポジトリの作成
- /var/www/rpmrepo にrpmを配備しとく
# yum install createrepo
# createrepo /var/www/rpmrepo
- http の公開
# cat << EOT > /etc/httpd/conf.d/rpmrepo.conf
Alias /rpmrepo/ "/var/www/rpmrepo/"
EOT
# service httpd restart
- リポジトリの登録
# cat << EOT > /etc/yum.repo.d/myreop.repo
[myrepo]
name=My private repo
baseurl=http://xx.xx.xx.xx/rpmrepo/
#baseurl=file:///var/www/rpmrepo
EOT
/var/www/rpmrepo にrpm を追加したとき
# createrepo --update /var/www/rpmrepo
gem リポジトリの作成
- geminabox のインストール
# gem install geminabox
# cat << EOT > config.ru
require "rubygems"
require "geminabox"
Geminabox.data = "/var/geminabox-data"
run Geminabox
EOT
# rackup <= 起動することを確認
- サーバ起動
# gem install unicorn
# cat << EOT > unicorn.conf
worker_processes 2
listen '/tmp/unicorn.sock'
pid '/tmp/unicorn.pid'
stderr_path File.expand_path('unicorn.log', File.dirname(__FILE__))
stdout_path File.expand_path('unicorn.log', File.dirname(__FILE__))
preload_app true
EOT
# unicorn -c unicorn.conf -l 3000 -D <= port 3000 でデーモン起動
- gem の登録
- Web ページからupload か
- gem inabox xxxx.gem か
- gem push xxx.gem --host HOST
github 系
使ったことあるやつだけ
gitbucket
- インストールがすごい簡単
- 最近 plugin 機能が実装された
- レビュー機能が充実してくれるとうれしい
gitlab
- 機能十分
- 以前はインストール大変だったけど、chef のレシピが公開されて大分楽になった
オンラインストレージ
ownCloud
- PHP系のオンラインストレージ
- 以前一回インストールしてみただけで、あんま使ってない