簡體   English   中英

Spring 雲配置 - Git 存儲庫錯誤

[英]Spring Cloud Config - Git Repository Errors

Spring 雲配置框架:

我正在嘗試將 java 項目中的 spring 雲配置與后端存儲庫git 集成,即 Z1599FAB6Z49FAA6914822。 基本上,我在不同的場合更頻繁地遇到兩個錯誤。

2020-04-11 17:08:59.265  WARN 2792 --- [           main] .c.s.e.MultipleJGitEnvironmentRepository : Could not fetch remote for master remote: https://user@bitbucket.org/workspace/config-repo.git

在上述情況下,它使用緩存版本和 tomcat/undertow 服務器啟動沒有任何問題。

2020-04-11 17:09:03.774  INFO 2792 --- [           main] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/var/folders/6m/1cgw7zvn3rsb8j5kskflhvrr0000gn/T/config-repo-2822438633438126334/api-gateway.yml
2020-04-11 17:09:03.774  INFO 2792 --- [           main] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/var/folders/6m/1cgw7zvn3rsb8j5kskflhvrr0000gn/T/config-repo-2822438633438126334/discovery-service.yml
2020-04-11 17:09:03.775  INFO 2792 --- [           main] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/var/folders/6m/1cgw7zvn3rsb8j5kskflhvrr0000gn/T/config-repo-2822438633438126334/config-service.yml

Git 版本:

git version 2.24.0

錯誤 1:git-upload-pack

2020-04-11 00:00:20 - 警告克隆到基本目錄時出錯。

org.eclipse.jgit.api.errors.TransportException: https://<username>@bitbucket.org/<workspace>/config-repo.git: git-upload-pack not permitted on 'https://beatles89@bitbucket.org/workspace/config-repo.git/'

啟動 spring 雲配置服務器,我隨機收到此錯誤。 在深入研究這個問題后,我發現 bitbucket 不支持git-upload-pack 但是2年前在這里報道過,並建議恢復GIT版本。

錯誤 2:不支持身份驗證

org.eclipse.jgit.api.errors.TransportException: https://bitbucket.org/user/repo.git: authentication not supported

當點擊執行器上的/refresh以從遠程配置存儲庫中獲取刷新的屬性時,我得到了上述錯誤。 有時它工作時沒有任何錯誤,有時它會拋出錯誤。

curl localhost:8060/refresh -d {} -H "Content-Type: application/json"

執行器刷新命令錯誤:

{"timestamp":"2020-04-10T16:35:41.144+0000","status":500,"error":"Internal Server Error","message":"Request processing failed; nested exception is org.springframework.cloud.config.server.environment.NoSuchRepositoryException: Cannot clone or checkout repository: https://beatles89@bitbucket.org/augmentedcloud/ac-config-repo.git","path":"/refresh"}

注意:作為旁注,我已經單獨克隆了指定的存儲庫進行測試,它可以正常工作,沒有任何身份驗證問題。

Spring 雲配置框架

Spring Cloud Config 框架基本上提供 git 作為后端存儲庫,以從遠程/緩存中獲取/加載.properties 您必須為git提供具有write權限的基本目錄定義,以從遠程克隆/簽出.properties

spring:
  cloud:
    config:
      server:
        git:
          basedir: ${AC_CONFIG_SERVICE_GIT_BASE_DIR}
          uri: ${AC_CONFIG_SERVICE_GIT_REMOTE_URI}
          username: ${AC_CONFIG_SERVICE_GIT_REMOTE_USER}
          password: ${AC_CONFIG_SERVICE_GIT_REMOTE_PASSWORD}
          passphrase: ${AC_CONFIG_SERVICE_GIT_REMOTE_PASSPHRASE}
          skip-ssl-validation: true
          timeout: 10

注意:否則,在每次服務器啟動時,它都會抱怨.properties出現不同的錯誤,或者從本地存儲庫加載.properties緩存版本。 默認情況下,從該位置讀取的basedir /var/tmpspring 雲配置框架正在尋找對父目錄的write權限,在這種情況下是/var -提示:觸發安全預防措施

為了安全起見並且不想破壞您的OSX ,為basedir定義了您自己的自定義位置之一,例如/Users/<....>/Documents/tmp 因為每次git在遠程存儲庫上查找新的更改,如果找到,它將拉下需要刪除以前文件的新.properties

因為,我已經在日志中定義了basedir沒有遇到來自spring 雲配置框架的任何錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM