zoukankan      html  css  js  c++  java
  • dockerfile-maven plugin自动镜像制作并发布

    环境准备:win10+docker
    1.打开hyper-v
    3.切换到docker的linux环境:右键桌面右下角小船图标
    4.暴露2375端口
     
    用户认证信息配置:
    <configuration>
      <repository>docker-repo.example.com:8080/organization/image</repository>
      <tag>latest</tag>
      <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
    </configuration>

    setting.xml添加远程仓库信息

    <servers>
      <server>
        <id>docker-repo.example.com:8080</id>
        <username>me</username>
        <password>mypassword</password>
      </server>
    </servers>
    

    pom.xml配置

    <plugin>
    	<groupId>com.spotify</groupId>
    	<artifactId>dockerfile-maven-plugin</artifactId>
    	<version>1.4.4</version>
    	<executions>
    		<execution>
    			<id>default</id>
    			<goals>
    				<goal>build</goal>
    				<goal>push</goal>
    			</goals>
    		</execution>
    	</executions>
    	<dependencies>
    		<dependency>
    			<groupId>javax.activation</groupId>
    			<artifactId>activation</artifactId>
    			<version>1.1.1</version>
    		</dependency>
    	</dependencies>
    	<configuration>
    		//上下文路径配置,此处设置为项目根路径
    		<contextDirectory>${project.basedir}</contextDirectory>
    		<useMavenSettingsForAuth>true</useMavenSettingsForAuth>
    		<repository>${registryUrl}/hush/${project.build.finalName}</repository>
    		<tag>${imageVersion}</tag>
    		//作为Dockerfile文件传入
    		<buildArgs>
    			<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
    		</buildArgs>
    	</configuration>
    </plugin>
    

    Dockerfile文件编写(放置在项目根路径)

    FROM registry.cn-hangzhou.aliyuncs.com/hush/basecontainer:20180929
    
    #添加本地jar包
    RUN mkdir -p /home/admin/app/
    RUN mkdir -p /home/admin/tomcat/
    ENV CATALINA_HOME /home/admin/tomcat/
    #
    ARG JAR_FILE
    
    ADD target/${JAR_FILE} /home/admin/app/
    #
    #
    #
    # 将启动命令写入启动脚本 start.sh
    RUN echo "$JAVA_HOME/bin/java -jar $JAVA_OPTS -Ddubbo.address.ip=$POD_IP -Djava.security.egd=file:/dev/./urandom  /home/admin/app/${JAR_FILE} --spring.profiles.active=prod" > /home/admin/start.sh && chmod +x /home/admin/start.sh
    WORKDIR $CATALINA_HOME
    ENTRYPOINT ["/bin/bash", "/home/admin/start.sh"]

    打包镜像:

    [INFO] Scanning for projects...
    [INFO] 
    [INFO] -----------------------< org.hush.k8s:provider >------------------------
    [INFO] Building provider 0.0.1-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO] 
    [INFO] --- dockerfile-maven-plugin:1.4.4:build (default-cli) @ provider ---
    [INFO] Building Docker context D:2018my_prodemoprovider
    [INFO] 
    [INFO] Image will be built as registry.cn-hangzhou.aliyuncs.com/hush/dubbo_provider:1.0.4
    [INFO] 
    [INFO] Step 1/9 : FROM registry.cn-hangzhou.aliyuncs.com/hush/basecontainer:20180929
    [INFO] 
    [INFO] Pulling from hush/basecontainer
    [INFO] Digest: sha256:35cdf59cd63e8f47cbb5ab595ad327f6ff2df8b910e34d958f83b942d072b713
    [INFO] Status: Image is up to date for registry.cn-hangzhou.aliyuncs.com/hush/basecontainer:20180929
    [INFO]  ---> a8440ec1b0aa
    [INFO] Step 2/9 : RUN mkdir -p /home/admin/app/
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> c88518200882
    [INFO] Step 3/9 : RUN mkdir -p /home/admin/tomcat/
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> 0f9dceff2421
    [INFO] Step 4/9 : ENV CATALINA_HOME /home/admin/tomcat/
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> 0c8108c0b64e
    [INFO] Step 5/9 : ARG JAR_FILE
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> 5df43a413985
    [INFO] Step 6/9 : ADD target/${JAR_FILE} /home/admin/app/
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> 5763c04c6c27
    [INFO] Step 7/9 : RUN echo '$JAVA_HOME/bin/java -jar $JAVA_OPTS -Ddubbo.address.ip=$POD_IP -Djava.security.egd=file:/dev/./urandom  "/home/admin/app/dubbo_provider.jar" --spring.profiles.active=prod' > /home/admin/start.sh && chmod +x /home/admin/start.sh
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> 2789f23853b2
    [INFO] Step 8/9 : WORKDIR $CATALINA_HOME
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> b87c1ad13e7d
    [INFO] Step 9/9 : ENTRYPOINT ["/bin/bash", "/home/admin/start.sh"]
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> 5debdfca2614
    [INFO] Successfully built 5debdfca2614
    [INFO] Successfully tagged registry.cn-hangzhou.aliyuncs.com/hush/dubbo_provider:1.0.4
    [INFO] 
    [INFO] Detected build of image with id 5debdfca2614
    [INFO] Building jar: D:2018my_prodemoprovider	argetdubbo_provider-docker-info.jar
    [INFO] Successfully built registry.cn-hangzhou.aliyuncs.com/hush/dubbo_provider:1.0.4
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 8.552 s
    [INFO] Finished at: 2018-10-01T11:45:37+08:00
    [INFO] ------------------------------------------------------------------------

    在容器上可以执行docker images|grep <相应镜像名称>

    docker push:

    [INFO] Scanning for projects...
    [INFO] 
    [INFO] -----------------------< org.hush.k8s:provider >------------------------
    [INFO] Building provider 0.0.1-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO] 
    [INFO] --- dockerfile-maven-plugin:1.4.4:build (default-cli) @ provider ---
    [INFO] Building Docker context D:2018my_prodemoprovider
    [INFO] 
    [INFO] Image will be built as registry.cn-hangzhou.aliyuncs.com/hush/dubbo_provider:1.0.4
    [INFO] 
    [INFO] Step 1/9 : FROM registry.cn-hangzhou.aliyuncs.com/hush/basecontainer:20180929
    [INFO] 
    [INFO] Pulling from hush/basecontainer
    [INFO] Digest: sha256:35cdf59cd63e8f47cbb5ab595ad327f6ff2df8b910e34d958f83b942d072b713
    [INFO] Status: Image is up to date for registry.cn-hangzhou.aliyuncs.com/hush/basecontainer:20180929
    [INFO]  ---> a8440ec1b0aa
    [INFO] Step 2/9 : RUN mkdir -p /home/admin/app/
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> c88518200882
    [INFO] Step 3/9 : RUN mkdir -p /home/admin/tomcat/
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> 0f9dceff2421
    [INFO] Step 4/9 : ENV CATALINA_HOME /home/admin/tomcat/
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> 0c8108c0b64e
    [INFO] Step 5/9 : ARG JAR_FILE
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> 5df43a413985
    [INFO] Step 6/9 : ADD target/${JAR_FILE} /home/admin/app/
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> 5763c04c6c27
    [INFO] Step 7/9 : RUN echo '$JAVA_HOME/bin/java -jar $JAVA_OPTS -Ddubbo.address.ip=$POD_IP -Djava.security.egd=file:/dev/./urandom  "/home/admin/app/dubbo_provider.jar" --spring.profiles.active=prod' > /home/admin/start.sh && chmod +x /home/admin/start.sh
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> 2789f23853b2
    [INFO] Step 8/9 : WORKDIR $CATALINA_HOME
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> b87c1ad13e7d
    [INFO] Step 9/9 : ENTRYPOINT ["/bin/bash", "/home/admin/start.sh"]
    [INFO] 
    [INFO]  ---> Using cache
    [INFO]  ---> 5debdfca2614
    [INFO] Successfully built 5debdfca2614
    [INFO] Successfully tagged registry.cn-hangzhou.aliyuncs.com/hush/dubbo_provider:1.0.4
    [INFO] 
    [INFO] Detected build of image with id 5debdfca2614
    [INFO] Building jar: D:2018my_prodemoprovider	argetdubbo_provider-docker-info.jar
    [INFO] Successfully built registry.cn-hangzhou.aliyuncs.com/hush/dubbo_provider:1.0.4
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 8.552 s
    [INFO] Finished at: 2018-10-01T11:45:37+08:00
    [INFO] ------------------------------------------------------------------------

     在镜像仓库可以直接查看

      

      

  • 相关阅读:
    为lvm逻辑分区扩容
    Linux性能优化课程笔记-CPU性能工具
    Linux性能优化课程笔记-bcc工具
    nmcli命令添加bond网口
    IPv6地址冲突
    mongodb的审计功能
    BIND支静态存根区域
    git的使用(2)
    全世界都在学python-打开文件
    java操作mongodb时,对象bean和DBObject相互转换的方法
  • 原文地址:https://www.cnblogs.com/HushAsy/p/9896196.html
Copyright © 2011-2022 走看看