[英]How to publish a docker image when you use spring-boot:build-image
[英]How do I define architecture arm64 when building the docker image through Maven spring-boot:build-image on Windows?
我有多個 Spring Boot 微服務,我可以運行spring-boot:build-image
為所有模塊構建 docker 圖像。 我正在使用我的 Windows WSL2 Ubuntu x86_64 和 Docker 引擎通過 IntelliJ 中的配置構建圖像。
我在我的 Windows 機器上一切都很好,我可以成功啟動容器,但我希望我的圖像在我的 Raspberry Pi Ubuntu Server 21.04 for architecture ARM64 上的容器中運行,並將它們拉到我的 Windows Docker 注冊表中,這樣我就可以輕松地本地傳輸圖像。 我的注冊表也能正常工作,但后來我遇到了由於體系結構問題無法啟動映像的錯誤。
如何在 IntelliJ Maven 配置運行中更改 docker 映像構建的架構?
我發現通過 Maven 配置 spring-boot 非常方便,它為構建鏡像做了各種配置。 我不知道如何使用 docker-compose.yml 或 Dockerfile 來成功構建圖像。 如果這是答案,我將把研究重點放在這上面,但直到現在我都不知道該怎么做。
我的感覺是 pom.xml 並在那里定義任何配置。 我的 pom.xml 現在看起來像這樣:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
問題編輯:我看到您可以使用參數--platform=linux/arm64
。 我可以把它放在某個地方嗎?
我發現答案是我無法運行的事情之一,直到現在 - 使用 Dockerfile。
FROM openjdk:11
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
通過運行 Deploy with IntelliJ 的 Dockerfile 成功構建並部署了一個 Docker 的鏡像和容器! 我很開心
您的問題的解決方案不在 Maven 構建步驟,而是在 Docker 構建步驟(在您執行 Maven 構建之后發生)。
我能夠使用 Maven spring-boot:build-image
后接此 Docker 命令為 ARM arch 構建圖像:
docker buildx build --platform linux/arm/v7 --tag <username>/<image name>:<tag>.
添加--push
標志將在構建圖像時自動將圖像推送到您的注冊表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.