1. 程式人生 > 實用技巧 >Springboot專案打包成docker映象,並上傳阿里雲映象伺服器

Springboot專案打包成docker映象,並上傳阿里雲映象伺服器

一、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