Dockerfile就是用来构建docker镜像的构建文件,是一段命令脚本
# 选取基础镜像FROM java:8# 设置环境变量ENV PROJECT_HOME /usr/local/zilanENV PROJECT_NAME zilan-test-0.0.1-SNAPSHOTENV JAVA_OPTS ""# 创建工作目录RUN mkdir $PROJECT_HOME#RUN mkdir $PROJECT_HOME/upload# 拷贝部署文件COPY $PROJECT_NAME.jar $PROJECT_HOMECOPY ext/*.* $JAVA_HOME/jre/lib/ext/RUN sed -i '/security.provider.9=sun.security.smartcardio.SunPCSC/a\security.provider.10=com.sansec.jce.provider.SwxaProvider' $JAVA_HOME/jre/lib/security/java.security#镜像启动入口ENTRYPOINT java $JAVA_OPTS -jar $PROJECT_HOME/$PROJECT_NAME.jar
# 用来构建镜像的基础镜像为java:8
FROM java:8
# 设置环境变量,方便下面程序调用
ENV PROJECT_HOME /usr/local/zilan
ENV PROJECT_NAME zilan-test-0.0.1-SNAPSHOT
#服务启动的参数比如分配的内存大小,q
ENV JAVA_OPTS ""
# 创建工作目录 /usr/local/zilan,不存在就创建
RUN mkdir $PROJECT_HOME
#RUN mkdir $PROJECT_HOME/upload
# 拷贝部署文件
#拷贝jar包到/usr/local/zilan这个目录
COPY $PROJECT_NAME.jar $PROJECT_HOME
#拷贝 ext目录的依赖文件到java的lib目录
COPY ext/*.* $JAVA_HOME/jre/lib/ext/
#待说明-----------------------------------------------------
RUN sed -i '/security.provider.9=sun.security.smartcardio.SunPCSC/a\security.provider.10=com.sansec.jce.provider.SwxaProvider' $JAVA_HOME/jre/lib/security/java.security
#镜像启动入口
#jar包启动的命令
ENTRYPOINT java $JAVA_OPTS -jar $PROJECT_HOME/$PROJECT_NAME.jar
Dockerfile构建指令
| 参数 | 解释 | 说明 |
|---|---|---|
| RROM | 指定基础镜像 | 这个镜像是通过哪个基础镜像来创建的镜像 |
| MAINTAINER | 维护者信息 | 这个脚本是谁编写和管理 |
| RUN | 在命令前面添加 | 这个脚本要做什么操作 |
| ADD | 拷贝文件,会自动解压 | |
| WORKDIR | 设置当前工作目录 | |
| VOLUME | 设置卷,挂载主机目录 | 存放服务文件的地方 |
| EXPOST | 它要打开 | |
| CMD | 指定容器启动后要干的事情 |
