zoukankan      html  css  js  c++  java
  • 使用maven插件构建docker镜像并推送到阿里镜像仓库

    1、阿里云镜像仓库

    阿里云提供了docker镜像仓库,可以上传私有的镜像

    2、com.spotify 提供的docker构建插件 docker-maven-plugin

    <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
    </plugin>

    3、window docker

    需要启用 Hyper-V 功能,然后安装docker

    具体配置:

    1、maven docker-maven-plugin 插件

    <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
    
        <configuration>
            <serverId>docker-aliyun</serverId>
            <registryUrl>registry.cn-hangzhou.aliyuncs.com</registryUrl>
    
            <baseImage>java:8</baseImage>
            <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
    
            <imageName>registry.cn-hangzhou.aliyuncs.com/company/image-name</imageName>
    
            <resources>
                <resource>
                    <targetPath>/</targetPath>
                    <directory>${project.build.directory}</directory>
                    <include>${project.build.finalName}.jar</include>
                </resource>
            </resources>
        </configuration>
    </plugin>

    2、修改 ~/.docker/config.json 配置文件

    {
        "auths": {
            "registry.cn-hangzhou.aliyuncs.com": {}
        },
        "credsStore": "wincred"
    }

    将以上配置的 "credsStore":"wincred" 去掉,这样在登陆后会将认证保存在此文件中,不然 docker-maven-plugin 获取不到认证信息,导致推送镜像失败

    3、在 PowerShell 或 CMD 中登陆 阿里云 docker registry

    在阿里云创建仓库后,点击管理可以看到操作指引,比如 登陆、推送、拉取等,登陆命令为:

    docker login --username=ali_account@company.com registry.cn-hangzhou.aliyuncs.com
    完了之后输入开通镜像仓库 namespace 时输入的密码,完成登陆,登陆之后 ~/.docker/config.json 类似
    {
        "auths": {
            "registry.cn-hangzhou.aliyuncs.com": {
                "auth": "ZG9ja2VyQDM2MGVkaW******UAxODU2ODMyNjA0MDgzODA5OkRIQDM2MGVkaWFuIzIwMTch"
            }
        }
    }

    其中 auth 就是保存的认证信息

    4、现在就可以使用maven命令进行打包推送了

    mvn clean package docker:push

    完成后可在阿里云中镜像仓库查看,可以在其他地方使用该镜像。

    com.spotify:docker-maven-plugin 常用操作有:
    
    docker:build 仅构建docker镜像(不推送)
    
    docker:push 推送镜像到远程仓库
  • 相关阅读:
    Ubuntu16.04编译Android6.0/cm13.0教程及相关错误解决办法
    TWRP基于omnirom 6.0.1编译教程
    教你一招:解决Win 10安装软件时提示:文件系统错误 (-1073740940)
    红米3 TWRP-3.0.2(android_6.0.1_r72分支)中文版Recovery更新于20161018
    C# Note32: 查漏补缺
    postgreSQL使用杂谈
    Granfana+PostgreSQL
    WIndows下使用Grafana+InfluxDB打造监控系统
    【译】历史上的名人如何利用不同的思维方式成就自己
    【译】Focused and Diffuse Modes(专注与发散模式)
  • 原文地址:https://www.cnblogs.com/xiaojf/p/14886359.html
Copyright © 2011-2022 走看看