1. 程式人生 > 其它 >spring-boot構建docker映象上傳倉庫

spring-boot構建docker映象上傳倉庫

spring-boot構建docker映象上傳倉庫

建立一個簡單spring-boot-web專案

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
    </parent>
    <groupId>com.example</groupId>
    <artifactId>spring-boot-docker-demo</artifactId>
    <version>1.0.0</version>
    <properties>
        <jave.version>1.8</jave.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <version>1.8.0</version>
                <configuration>
                    <from>
                        <!--    拉取基礎映象    -->
                        <image>openjdk:8-jdk-alpine</image>
                    </from>
                    <to>
                        <!--    格式:官方docker hub->使用者名稱/映象名    -->
                        <!--    格式:阿里雲容器映象服務->registry.cn-hangzhou.aliyuncs.com/服務空間/映象名    -->
                        <image>registry.cn-hangzhou.aliyuncs.com/服務空間/${project.name}</image>
                        <!--    映象版本號    -->
                        <tags>
                            <tag>latest</tag>
                            <tag>${project.version}</tag>
                        </tags>
                        <auth>
                            <username>使用者名稱</username>
                            <password>密碼</password>
                        </auth>
                    </to>
                    <container>
                        <!--    啟動類    -->
                        <mainClass>啟動類地址</mainClass>
                        <useCurrentTimestamp>use</useCurrentTimestamp>
                        <!--    服務暴露的埠    -->
                        <ports>
                            <port>8080</port>
                        </ports>
                    </container>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

準備工作

  1. 建立docker倉庫映象工程
  2. 配置docker hub push引數

執行

檢視映象上傳倉庫

思考

這時候我們發現當前倉庫資訊明文暴露在專案中,這時候又要怎麼處理,讓其提高安全性。

方案1

mvn compile com.google.cloud.tools:jib-maven-plugin:1.8.0:build -Djib.to.auth.username=user -Djib.to.auth.password=pass -Dimage=<MY IMAGE>

方案2

使用maven設定,只在本地可用

 <settings>
    ...
    <servers>
        ...
        <server>
            <id>MY_REGISTRY</id>
            <username>MY_USERNAME</username>
            <password>{MY_SECRET}</password>
        </server>
    </servers>
</settings>