OpenShift上でprivate Docker registryを動かす
Dockerで遊んでるとテスト用にDocker registryが欲しくなります。Docker registryはdocker run -d -p 5000:5000 registry:latest
とかで動かせるのですが、こういうのはOpenShiftに投げてしまうとラクです。
Docker registryのイメージはユーザを切り替えていますが、OpenShiftではDockerコンテナは割り当てられたUIDしか利用できないセキュリティ設定になっているので、ユーザの切り替えができるように事前にadmin権限でoc edit scc restricted
してrunAsUser.Type
をRunAsAny
へ変更します。デフォルトではMustRunAsRange
になっています。
あとはざざっと作って、httpsのルートも作成します。
oc new-app registry:latest --name=v1 oc expose service v1 --name=v1-http oc expose service v1 --name=v1-https oc new-app registry:2.0 --name=v2 oc expose service v2 --name=v2-http oc expose service v2 --name=v2-https oc edit route v1-https oc edit route v2-https
oc expose
はデフォルトでhttpのルートを作成するので、httpsのものは作成してから編集してedge TLSを有効化します。spec部にtlsの2行を加えるだけです。これでv1もv2もhttp/https共にアクセスできるようになります。
spec: tls: termination: edge
おしまい。