自从上次用derrick 创建 nodejs 项目容器之后,以此为砖来引出学习Dockerfile的玉,用docker创建maven项目镜像也分两步走.
- 使用maven plugin docker 创建镜像并push到 阿里云镜像仓库
- 使用 Alibaba Cloud Toolkit 创建镜像并push到 阿里云镜像仓库
- 准备工作:
- 申请 阿里云镜像仓库
- 本地 docker
- 已安装 Alibaba Cloud Toolkit 的 intellij idea
- 使用maven plugin docker 创建镜像并push到 阿里云镜像仓库
- maven setting.xml 写入 阿里云镜像仓库 信息
- 提前创建命名空间和镜像仓库
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到阿里云镜像仓库,请看下一篇
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。