springboot項目打包docker鏡像並且上傳到阿里雲遠程倉庫

springboot項目打包docker鏡像並且上傳到阿里雲遠程倉庫

1, docker開啓遠程訪問

1-1 筆者docker安裝在ubnutu上(Ubuntu 15.04及更高版本)

  1. 創建/etc/systemd/system/docker.service.d目錄
sudo mkdir /etc/systemd/system/docker.service.d
  1. 創建一個/etc/systemd/system/docker.service.d/http-proxy.conf文件。
    sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
   [Service]
   ExecStart=
   ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
  1. 刷新配置
sudo systemctl daemon-reload
  1. 重新啓動docker守護進程
sudo systemctl restart docker
  1. 重啓docker
sudo systemctl restart docker

2, maven插件

  1. 版本信息等變量

    <!--docker的maven插件版本號-->
    <docker-maven-plugin.version>1.2.0</docker-maven-plugin.version>
    <!--部分鏡像名稱-->
    <docker.image.prifx>tiger-cloud-platform</docker.image.prifx>
    <!--dockerFile中的父鏡像-->
    <docker.baseImage>mrsinham/alpine-oraclejdk8</docker.baseImage>
    <!--遠程docker地址-->
    <docker.host>http://192.168.8.244:2375</docker.host>
    <!--dockerFile中的volumes-->
    <docker.volumes>/tmp</docker.volumes>
    <!--dockerFile中的ENTRYPOINT-->
    <docker.java.security.egd>-Djava.security.egd=file:/dev/./urandom</docker.java.security.egd>
    <!--應用啓動參數-->
    <docker.java.opts>-Xms128m -Xmx128m</docker.java.opts>
    <!--遠程阿里雲域名-->
    <docker.repository.url>registry.cn-beijing.aliyuncs.com</docker.repository.url>
    <!--阿里雲中的命名空間-->
    <docker.repository.namespace>itpengwei</docker.repository.namespace>
    <!--在本地seting裏面配置的阿里雲倉庫用戶名密碼-->
    <docker.repository.serverId>itpengwei</docker.repository.serverId>
    
  2. maven本地倉庫變量指定阿里雲遠程倉庫命名空間的訪問密碼

<servers>
     	<server>
     		 <!--maven的pom中可以根據這個id找到這個server節點的配置-->  
           <id>itpengwei</id>
           <!--這裏是在阿里雲註冊的賬號-->
           <username>xxxx</username>
           <!--這裏是在阿里雲註冊的密碼-->
           <password>xxxx</password>
           <configuration>
           	<!--註冊阿里雲填寫郵箱-->
               <email>[email protected]</email>
           </configuration>
       </server>
<servers/>
  1. mavne插件配置
<build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
               <execution>
                  <goals>
                     <goal>repackage</goal>
                  </goals>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <configuration>
               <forceTags>true</forceTags>
						<!-- 是否上傳鏡像,如果沒配置則需要mvn clean package docker:bulild -DpushImage-->
               <pushImage>true</pushImage>
							<!-- 鏡像名稱-->             <imageName>${docker.repository.url}/${docker.repository.namespace}/${docker.image.prifx}:${project.artifactId}</imageName>
								<!--遠程倉庫的用戶名密碼-->
               <serverId>${docker.repository.serverId}</serverId>
								<!-- 遠程倉庫地址-->
               <registryUrl>${docker.repository.url}</registryUrl>
               <!--遠程docker地址-->
               <dockerHost>${docker.host}</dockerHost>
								<!--父鏡像-->
               <baseImage>${docker.baseImage}</baseImage>
								<!--文件存儲目錄-->
               <volumes>${docker.volumes}</volumes>
               <env>
                  <JAVA_OPTS>${docker.java.opts}</JAVA_OPTS>
               </env>
               <entryPoint>["sh","-c","java $JAVA_OPTS ${docker.java.security.egd} -jar /${project.build.finalName}.jar"]</entryPoint>
               <resources>
                  <resource>
                     <targetPath>/</targetPath>
                     <directory>${project.build.directory}</directory>
                     <include>${project.build.finalName}.jar</include>
                  </resource>
               </resources>
            </configuration>
         </plugin>
      </plugins>
      <finalName>${project.artifactId}</finalName>
   </build>

4,驗證

通過命令mvn clean package docker:build命令執行完就能看到docker中已經有鏡像了,並且阿里遠程倉庫也有了

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章