Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。’#’ 为 Dockerfile 中的注释。先看下面一个小例子:
> *一般的,dockerfile文件开发人员不需要太过关注。*
```
#制定基础镜像,必须为第一个命令
FROM anapsix/alpine-java:8_server-jre_unlimited
#维护者信息
MAINTAINER deployment deployment@beree.cn
#构建镜像时执行的命令,这里我们创建一个目录
RUN mkdir -p /beree/beree-urip-core
#转到工作目录。类似 cd ***
WORKDIR /beree/beree-urip-core
#指定于外界交互的端口,比如我们再容器中启动的端口为8801,那么我们再宿主机使用localhost:801 即可以访问到容器中801端口对用的应用
EXPOSE 801
#将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
ADD ./target/beree-urip-core.jar ./app.jar
#配置容器,使其可执行化,相当于执行命令 java -Djava.security.egd=file:/dev/./urandom -jar app.jar 要追加任何命令可以直接在 [ ] 数组中追加任何参数,但是要保证排序正确
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
#构建容器后调用,也就是在容器启动时才进行调用 相当于我们给容器启动过程增加参数,--spring.profiles.active=test 参数我们一般不再这里定义,我们可以放到 docer-compose 的变量定义里
CMD ["--spring.profiles.active=test"]
```
这里我们只针对我们常用的一些配置进行讲解,其它详细参数可以参见以下:[https://www.cnblogs.com/panwenbin-logs/p/8007348.html](https://www.cnblogs.com/panwenbin-logs/p/8007348.html)