기본적으로 푸시하지 않고 jib-maven-plugin을 사용하여 도커 이미지를 구축하는 방법은 무엇입니까?
저는 간단한 SpringBoot 애플리케이션을 가지고 있으며 Jib Maven 플러그인을 사용하여 도커 이미지를 빌드하고 싶습니다.다음은 플러그인 구성입니다.
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.1.0</version>
<configuration>
<from>
<image>openjdk:11-jdk-slim</image>
</from>
<to>
<image>username/appname</image>
<tags>
<tag>latest</tag>
<tag>${project.version}</tag>
</tags>
</to>
<container>
<mainClass>demo.Application</mainClass>
<ports>
<port>8080</port>
<port>8787</port>
</ports>
</container>
</configuration>
</plugin>
이미지를 로컬로 빌드하여 실행하고 싶습니다.저는 도커 레지스트리를 한 번에 구축하고 푸시하고 싶지 않습니다.
mvnjib:build 명령을 실행하면 Docker 구성(/Users/username/.docker/config.json)의 자격 증명을 사용하여 DockerHub에 자동으로 푸시됩니다.
이미지를 레지스트리에 푸시하는 다른 목표와 푸시를 비활성화할 수 있는 방법이 있습니까?
당신이 말한 이후로jib:dockerBuild옵션이 아닙니다. 가장 가까운 해결 방법은jib:buildTar목표는 지역 타르볼을 만듭니다.target/jib-image.tar(로 구성 가능한 경로)<outputPaths><tar>). 실행 중.jib:buildTar(또는 임의)jib:...처음으로 이미지를 구축하는 데 필요한 모든 것을 구축하고 캐시합니다.따라서, 후속jib:build도면층의 측면에서 런은 불가능합니다.원격 레지스트리에서 누락된 레이어만 전송하면 됩니다.
물론, 이 해결책의 한 가지 단점은 불필요한 타르볼을 생성한다는 것인데, 이 타르볼은 크기가 클 수 있습니다.
질문과 관계없이 설정할 필요가 없습니다.<tag>latest</tag>대상 이미지 참조 때문입니다.<image>username/appname<image>이미 암시하고 있는<image>username/appname:latest<image>.그<tags>추가 태그를 밀어넣는 구성입니다.<to><iamge>.
JIB 설명서 Jib Maven Plugin에서 다음을 실행할 수 있습니다.
mvn jib:dockerBuild
빌드 후 이미지를 도커 데몬에 푸시합니다.
wsl2와 함께 Mac 또는 Windows에서 포드맨을 사용하는 경우...포드맨 명령을 찾을 수 있는 경로 지정
mvn jib:dockerBuild -Djib.dockerClient.executable=$(which podman)
일반적으로 프로젝트 내에서 Docker 파일 대신 Jib를 사용하려는 두 가지 주요 이유가 있습니다.
- 빌드/CI 노드에서 실행되는 도커 데몬의 필요성을 방지합니다.
- Docker 파일 및/또는 Docker 모범 사례가 필요하지 않도록 합니다.
일반적으로 Jib 워크플로우는 빌드에서 컨테이너 레지스트리로 이동합니다.따라서 가장 간단한 옵션은 로컬 컨테이너 레지스트리를 설정하는 것입니다.
오픈 소스 도커 레지스트리나 하버 등을 사용해 볼 수 있습니다.
방금 확인해보니 지브에서 구축한 이미지는 현지에서 가능합니다.먼저 Docker 데몬이 로컬에서 실행되고 있는지 확인합니다.그런 다음 다음 다음과 같이 수행합니다.
<to>
<image><your-local-image-name></image>
</to>
당신의 도커 데몬이 실행되고 있지 않거나 이미지 이름이 사용자 이름으로 시작되어 실제로 도커 허브에 이미지를 푸시하고 싶다고 지브가 생각하게 되었기 때문에 당신의 이미지가 작동하지 않았을 수도 있습니다.
언급URL : https://stackoverflow.com/questions/60862811/how-to-build-the-docker-image-using-jib-maven-plugin-but-not-push-by-default
'programing' 카테고리의 다른 글
| SQL Server에서 커서를 사용하는 것이 잘못된 관행으로 간주되는 이유는 무엇입니까? (0) | 2023.07.16 |
|---|---|
| 핵심 데이터를 사용하여 열거형을 구현하는 가장 좋은 방법 (0) | 2023.07.16 |
| Oracle current_date 또는 sysdate(시간, 분, 초 없음) (0) | 2023.07.16 |
| 하나의 열에 동일한 값이 있을 때 sql 쿼리를 원합니다. (0) | 2023.07.16 |
| 범위에서 비어 있지 않은 첫 번째 셀 찾기 (0) | 2023.07.16 |