亲宝软件园·资讯

展开

spring-boot构建docker镜像上传仓库的示例教程

苏戏 人气:0

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

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>

加载全部内容

相关教程
猜你喜欢
用户评论