概要
registry はすでに https で起動している想定です
環境
- macOS 15.5
- docker 28.1.1
- docker-registry-ui 2.5.7
Registry 側の CORS 設定
要するに localhost からアクセスできるように CORS を許可します
Access-Control-Allow-Origin はアスタリスクでもいいですが可能な限り制限しましょう
# storage
registry:
image: registry:2
ports:
- "5000:5000"
volumes:
- "/home/user01/homepage/registry:/var/lib/registry"
- "/home/user01/homepage/registry/auth_config.yml:/config/auth_config.yml"
- "/etc/letsencrypt/live/user01.com/privkey.pem:/certs/server.key"
- "/etc/letsencrypt/live/user01.com/fullchain.pem:/certs/server.crt"
environment:
- REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt
- REGISTRY_HTTP_TLS_KEY=/certs/server.key
- REGISTRY_HTTP_HEADERS_Access-Control-Allow-Origin=["http://localhost:8080"]
- REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods=["HEAD","GET","OPTIONS","DELETE"]
- REGISTRY_HTTP_HEADERS_Access-Control-Allow-Credentials=["true"]
- REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers=["Authorization","Accept","Cache-Control"]
- REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers=["Docker-Content-Digest"]
- REGISTRY_STORAGE_DELETE_ENABLED=true
restart: always
docker-reigstry-ui 起動
docker コマンドで起動します
docker run -d \
-p 8080:80 \
-e REGISTRY_URL=https://user01.com:5000 \
-e DELETE_IMAGES=true \
-e REGISTRY_TITLE="My Private Registry" \
--name registry-ui \
joxit/docker-registry-ui:latest
動作確認
localhost:8080 にアクセスして registry の内容が確認できれば OK です
最後に
ポイントは CORS の許可かなと思います
http な registry に対しても使うことはできますが https でアクセス可能な環境であればこれが一番簡単かなと思います
当然ですが registry (今回で言うところの https://user01.com:5000) に対してはアクセス可能な環境で docker-registry-ui を起動してアクセスする必要があります
0 件のコメント:
コメントを投稿