Springboot專案打包成docker映象,並上傳阿里雲映象伺服器
阿新 • • 發佈:2020-09-21
一、spring專案打包成映象伺服器
1、增加docker外掛依賴
首先Springboot工程需要在pom.xml檔案增加對docker外掛的支援,最新的外掛是dockerfile-maven-plugin,原來的外掛是docker-maven-plugin,現在不建議使用。
1 <plugin> 2 <groupId>com.spotify</groupId> 3 <artifactId>docker-maven-plugin</artifactId> 4 <version>1.0.0</version>
2、docker外掛配置 :不用編寫Dockerfile
1 <configuration> 2 <serverId>docker-aliyun</serverId> 3 <imageName>registry.cn-hangzhou.aliyuncs.com/<自己倉庫的名稱空間>/<倉庫名稱></imageName> 4 <imageTags> 5 <imageTag>${project.version}</imageTag> 6 <!--可以指定多個標籤--> 7 <imageTag>${profileActive}</imageTag> 8 </imageTags> 9 <pushImage>true</pushImage> 10 <!--覆蓋已存在的標籤 映象--> 11 <forceTags>true</forceTags> 12 <baseImage>java:8</baseImage> 13<entryPoint>["java", "-Xms512m", "-Xmx512m", "-Denv=${env}", "-Duser.timezone=GMT+08", "-jar", "/${project.build.finalName}.jar"] 14 </entryPoint> 15 <resources> 16 <resource> 17 <targetPath>/</targetPath> 18 <directory>${project.build.directory}</directory> 19 <include>${project.build.finalName}.jar</include> 20 </resource> 21 </resources> 22 </configuration>
3、使用Maven命令進行打包
mvn clean package -P<相應的資源環境profile id> 打成Jar包
mvn docker:build -P<相應的資源環境 profile id> 生產docker映象檔案,並構建上傳
遇到的錯誤:
1)上傳push的時候 [WARNING] Failed to push registry.cn-hangzhou.aliyuncs.com/sfwl/sfwl-pay-boss, retrying in 10 seconds (1/5).
解決方案:你先等登入使用者$ sudo docker login --username=阿里雲賬號 registry.cn-hangzhou.aliyuncs.com 登陸成功後,會在本地伺服器的.docker/config.json 加入一條憑證,如下圖
1 "auths": { 2 "registry-vpc.cn-hangzhou.aliyuncs.com": { 3 "auth": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 4 }, 5 "registry.cn-hangzhou.aliyuncs.com": { 6 "auth": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7 } 8 } 9
2)docker: Error response from daemon: pull access denied for registry-vpc.cn-hangzhou.aliyuncs.com/sfwl/sfwl-pay-boss, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
您可以通過修改daemon配置檔案/etc/docker/daemon.json來使用加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://8a948t7x.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker