建立App Service Container服務,選擇從Docker Hub中獲取appsmith/appsmith-ce 映象(https://www.appsmith.com/ & https://hub.docker.com/r/appsmith/appsmith-ce/tags ), 但存取站點時遇見Application Error錯誤。檢視部署紀錄檔,發現問題原因是:
ERROR - Image pull failed: Verify docker image configuration and credentials (if using private repository)
在App Service For Container 中,如果選擇從Docker Hub中獲取映象,App Service自動設定的Docker Hub Service URL是 https://index.docker.io。 這個地址可以在建立App Service時候的Review頁面中獲取,也可以從App Service的Configuration頁面中的DOCKER_REGISTRY_SERVER_URL設定中檢視。
因為在中國區的特殊情況下,當docker.io無法存取或者存取不穩定的情況下,就會出現Image pull failed的情況。
由於無法修改Docker Hub 在App Service中設定的Service URL,所以只有兩種辦法來緩解這種情況:
1) 把需要的映象想辦法上傳到中國區的ACR(Azure Container Registry)中, 這樣就不會面臨存取攔截的問題。
2) 使用私有映象庫(Private Registry), 在面臨Docker Hub(docker.io) 無法從中國區存取的情況,有很多映象代理庫同樣可以下載到與Docker Hub相同的映象檔案。
所以,本文中使用的代替存取就是:
使用 Private Registry 並設定代理URL ( https://dockerhub.azk8s.cn/ )用於替換 Docker Hub( https://index.docker.io/ )。
設定修改對比截圖:
修改完成後,再次檢視紀錄檔:
2023-06-19T07:16:29.498Z INFO - Status: Downloaded newer image for dockerhub.azk8s.cn/appsmith/appsmith-ce:release
2023-06-19T07:16:29.501Z INFO - Pull Image successful, Time taken: 3 Minutes and 52 Seconds
拉取映象成功,驗證存取站點,也成功了。
Container Registry Proxy : https://github.com/Azure/container-service-for-azure-china/blob/master/aks/README.md
appsmith/appsmith-ce 映象: https://www.appsmith.com/ or https://hub.docker.com/r/appsmith/appsmith-ce/tags
當在複雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 雲中,恰是如此!