spring boot 打包成 docker镜像 并且上传到docker仓库(阿里云容器镜像服务)

maven 插件

<plugin>
    <groupId>com.spotifygroupId>
    <artifactId>docker-maven-pluginartifactId>
    <version>1.1.1version>
    <configuration>
        <forceTags>trueforceTags>
        <pushImage>truepushImage>
        <buildArgs>
            <JAR_FILE>${project.build.finalName}.jarJAR_FILE>
        buildArgs>
        <imageName>${docker.repository.url}/${docker.repository.namespace}/${project.artifactId}:${project.version}imageName>
        <serverId>${docker.repository.serverId}serverId>
        <registryUrl>${docker.repository.url}registryUrl>
        <dockerDirectory>src/main/dockerdockerDirectory>
        <resources>
            <resource>
                <targetPath>/targetPath>
                <directory>${project.build.directory}directory>
                <include>${project.build.finalName}.jarinclude>
            resource>
        resources>
    configuration>
plugin>

dockerDirectory标签指定了Dockerfile 存放的位置

<properties>
    <docker.repository.url>registry.cn-hangzhou.aliyuncs.comdocker.repository.url>
    <docker.repository.namespace>liuhongjundocker.repository.namespace>
    <docker.repository.serverId>docker-aliyun-mydocker.repository.serverId>
properties>

docker.repository.url 阿里云仓库地址

docker.repository.namespace 阿里云仓库命名空间

docker.repository.serverId 登陆仓库的账号密码

仓库账号密码在manve settings.xml配置

<servers>
    <server>
        <id>docker-aliyun-myid>
        <username>[email protected]username>
        <password>xxxxpassword>
        <configuration>
            <email>[email protected]email>
        configuration>
    server>
servers>

Dockerfile 文件

FROM java:8
VOLUME /tmp
# ENV TimeZone=Asia/Shanghai
# RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

使用

mvn clean package

mvn docker:build

你可能感兴趣的:(笔记)