이 기사에서 영감을 얻은 https://www.jfrog.com/knowledge-base/how-do-i-access-multiple-artifactory-docker-repositories-from-a-single-url/ 우리는 nginx를 리버스 프록시로 사용하여 artifactory에 여러 개의 도커 리포지토리를 구성했습니다.이미지 이름에 리포지토리 이름을 포함하여 nginx가 포함 된 Artifactory 및 다중 도커 리포지토리
접근 할 세 가지 고정 표시기 저장소가 있습니다
- docker.acme.com (artifactoryhost/artifactory/고정 표시기/기본)
- docker.acme.com/repository-a (artifactoryhost/artifactory/고정 표시기/저장소-A)
- docker.acme.com/repository-b (artifactoryhost/artifactory/고정 표시기/저장소-B)
세의 repos는 권한이 자신의 사용자를 가지고있다.
끌어 오기는 괜찮지 만 사용자가 기본 저장소로 푸시 할 수 없으면 저장소 -a 또는 저장소 -b로 푸시하면 제대로 작동하지 않습니다. 푸시 중 모든 업로드는 기본 저장소에 먼저 저장되고 끝에 만 저장소 -a로 이동됩니다. 내가
docker push docker.acme.com/repository-a/myimage:1.0.0
고정 표시기 같은 것을 밀어있을 때 나는 artifactory 로그에서 볼 수 있듯이
, 일부 POST 요청을 수행 레이어를 업로드하는 패치 artifactory 업로드 위치와 진행에서 수신합니다.
2017/11/08 12:35:17 [debug] 19310#0: *6107899 http upstream request:
"/artifactory/api/docker/repository-a/v2/myimage/blobs/uploads/?
from=repository-
a%2Fmyimage&mount=sha256%3A6a8bd10c9278a8e1b59bc85f634dd4045e953
63c3b29366e9e8200ac2cd56735"
2017/11/08 12:35:17 [debug] 19310#0: *6107899 http upstream process
header
2017/11/08 12:35:17 [debug] 19310#0: *6107899 malloc:
0000000000EA8EF0:4096
2017/11/08 12:35:17 [debug] 19310#0: *6107899 recv: fd:23 427 of 4096
2017/11/08 12:35:17 [debug] 19310#0: *6107899 http proxy status 202
"202 Accepted"
2017/11/08 12:35:17 [debug] 19310#0: *6107899 http proxy header:
"Server: Artifactory/5.0.1"
2017/11/08 12:35:17 [debug] 19310#0: *6107899 http proxy header: "X-
Artifactory-Id: 1cfb2a5a96486c54:43202ab7:15ced9e7676:-8000"
2017/11/08 12:35:17 [debug] 19310#0: *6107899 http proxy header:
"Docker-Distribution-Api-Version: registry/2.0"
2017/11/08 12:35:17 [debug] 19310#0: *6107899 http proxy header:
"Docker-Upload-Uuid: d0d4ed31-6539-43a3-bb03-35e47fa13676"
2017/11/08 12:35:17 [debug] 19310#0: *6107899 http proxy header:
"Location: https://docker.acme.com/v2/myimage/blobs/uploads/d0d4ed31-
6539-43a3-bb03-35e47fa13676"
을 따라서 다음의 모든 패치는 저장소-A에 기본 REPO에가는 것이 아니라, : 그러나 artifactory의 응답은 위치에있는 저장소 경로를 포함하지 않습니다.
HTH : artifactory의 응답을 여기에 트릭은 응답의 위치 헤더를 편집하여 아파치 설정에서 순서를 변경하는 것입니다 : ' "400 Bad Request"' – abinet
@abinet은 컬 (curl) 또는 도커 (Docker)인가? 호스트 헤더가 "hostname/repoName"형식인지 확인하십시오. 계획이나 다른 것을 포함하지 마십시오. 시도해보십시오. 400으로 응답 한 요청이 artifactory request.log 파일을 사용하여 Artifactory에서 라우트되어야하는 위치로 라우트되는지 확인하십시오. 유효하다면, 유효하지 않은 호스트 헤더 또는 Apache가있을 수 있습니다. 그 자체가 400을 반환 할 수 있습니다. 티켓 @ [email protected]을 제출하고이 스레드를 참조 할 수 있도록 자유롭게 가져와주세요 .- 아파치/아티팩트 로그와 아파치 설정을 모두 포함해야합니다. –
나는 컬과 도커를 모두 시험해 보았습니다. 호스트 헤더에 repo-name을 입력하자마자 "400 Bad request"가 표시됩니다. Artifactory request.log에 이에 대한 항목이 없지만 access.log에서 "내 nginx의 NA/
abinet