自从上次用derrick 创建 nodejs 项目容器之后,以此为砖来引出学习Dockerfile的玉,用docker创建maven项目镜像也分两步走.

  1. 使用maven plugin docker 创建镜像并push到 阿里云镜像仓库
  2. 使用 Alibaba Cloud Toolkit 创建镜像并push到 阿里云镜像仓库

  • 准备工作:
  1. 申请 阿里云镜像仓库
  2. 本地 docker
  3. 已安装 Alibaba Cloud Toolkit 的 intellij idea

  • 使用maven plugin docker 创建镜像并push到 阿里云镜像仓库
  1. maven setting.xml 写入 阿里云镜像仓库 信息
    image.png
  2. 提前创建命名空间和镜像仓库
    image.png
    image.png

2.pom.xml 添加下列信息

<properties>
 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 <docker.repostory>registry.cn-hangzhou.aliyuncs.com</docker.repostory>
 <docker.registry.name>huangzx3</docker.registry.name>
</properties>
<plugin>
 <groupId>com.spotify</groupId>
 <artifactId>docker-maven-plugin</artifactId>
 <version>1.2.2</version>
 <configuration>
 <imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}:${project.version}</imageName>
 <!---->
 <!-- 指定Dockerfile所在的路径 --> <dockerDirectory>${project.basedir}</dockerDirectory>
 <resources>
 <resource>
 <targetPath>/</targetPath>
 <directory>${project.build.directory}</directory>
 <include>${project.build.finalName}.jar</include>
 </resource>
 </resources>
 <!---->
 <serverId>docker-aliyun</serverId>
 <registryUrl>${docker.repostory}</registryUrl>
 <!---->
 <pushImage>true</pushImage>
 <!---->
 </configuration>
</plugin>
ps:
<serverId>标签的值要与setting.xml中的<id>标签相等
<dockerDirectory> 是Dockerfile 的路径
<docker.registry.name> 为创建的命名空间
<project.artifactId> 为创建的镜像仓库名

3.创建Dockerfile文件

FROM openjdk:8u151-jdk
ADD target/gateway-test-1.0.0-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8761
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]

4.最后执行
sudo docker push registry.cn-hangzhou.aliyuncs.com/huangzx3/gateway:1.0.0-SNAPSHOT


用 Alibaba Cloud Toolkit 创建镜像并push到阿里云镜像仓库,请看下一篇


🌹Ontario Gothic🐾
1 声望0 粉丝

🌹Ontario Gothic🐾