<aside>
💡
요약 ( Jenkins → Bitbucket Pipelines 전환 및 Nexus CE Docker Registry 이슈 해결 )
- 기존 Jenkins 기반 Docker 빌드/배포를 Bitbucket Pipelines로 전환
- 핵심 이슈: Nexus Community Edition에서 docker-group repo에 push 불가 (CE 제약)
- 원인: nginx 프록시가 443 도메인을 docker-group으로 라우팅하는 구조
- 해결: push/pull 엔드포인트 분리 (nexus-push → hosted / nexus-reg → group)
- 결과: build/push/pull/run/health를 step으로 분리하여 운영 편의성과 안정성 확보
</aside>
1. 배경 (기존 Jenkins 배포 구조)
1.1 기존 배포 흐름
- Jenkins pipeline에서 Docker 이미지 빌드
- Nexus Registry로 push
- 배포 서버에 SSH 접속 후
start.sh 실행 (원격에서 pull/run)
1.2 Jenkins 변수 구성
NEXUS_HOST=nexus.company.com
NEXUS_PORT=5000 # HTTP/insecure
REGISTRY_PATH=repository/hotel-registry
IMAGE_NAME=burrow
DOCKER_TAG=latest
1.3 전환 목표
- Jenkins 제거/축소하고 Bitbucket Pipelines로 전환
- Docker build & push
- 원격 서버에서 pull / run / healthcheck까지 수행
2. 핵심 이슈 1: Nexus CE에서 docker-group push 불가
2.1 현상
nexus-reg.company.com(443) 도메인으로 push 시도 시:
403 Forbidden 또는 unauthorized / unexpected status from POST ... 403
- 특히 docker-group으로 프록시되는 엔드포인트로 push가 실패
2.2 원인
| 항목 |
설명 |
| Nexus 에디션 |
Community Edition (CE) |
| CE 제약사항 |
docker-group repository에 push(write) 기능이 지원되지 않음 |
| group 용도 |
pull aggregation 전용 (writable group은 Pro 기능) |