本文转自 https://segmentfault.com/a/1190000016449865 , 感谢作者!
本文的源代码在:https://github.com/chanjarste...
这里先给出一些Docker Image制作的要求,之后我们再看怎么做。
- 制作过程要融合在项目构建过程中
- 使用官方Image作为基础Image
- 设定正确的时区
- Container内的程序以非root用户启动
- 指定Web程序的接口
- 能够传递JVM参数、Java System Properties、程序自定义的参数
下面具体讲一下具体怎么做到以上几点:
制作过程要融合在项目构建过程中
这里推荐使用Spotify的dockerfile-maven-plugin,理由是这个plugin用起来最简单且容易掌握。
该plugin的本质上是你写一个Dockerfile(关于Dockerfile的具体写法请参照官方文档),这个plugin把一些参数传递进去来帮助你构建Docker Image。
因此只要你会写Dockerfile,就会使用这个plugin,它没有加入任何额外的概念。
使用官方Image作为基础Image
Java的基础镜像应该在openjdk repository里寻找,而不是在已经过时的java repository里找。
openjdk repository提供