赞
踩
# 以一个镜像为基础,在其上进行定制。就像我们之前运行了一个 nginx 镜像的容器,再进行修改一样,基础镜像是必须指定的。而 FROM 就是指定 基础镜像,因此一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令。 FROM centos:7 # 声明作者 MAINTAINER developer # 在构建镜像时执行脚本 RUN yum -y install java # 指定工作目录。用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在。 WORKDIR /opt/ # 复制指令,从上下文目录中复制文件或者目录到容器里指定路径。 COPY test-0.0.1-SNAPSHOT.jar /opt/test/ COPY application.yml /opt/test/application.yml # 仅仅只是声明端口。 EXPOSE 8899 # 类似于 RUN 指令,用于运行程序 # 优点:在执行 docker run 的时候可以指定 ENTRYPOINT 运行所需的参数。 # 注意:如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效。 ENTRYPOINT ["java","-Dspring.config.location=/opt/test/application.yml","-jar","/opt/test/test-0.0.1-SNAPSHOT.jar"]
上面用到的复制指令为COPY,还有一个命令为ADD,ADD 指令和 COPY 的使用格类似(同样需求下,官方推荐使用 COPY)。功能也类似,不同之处如下:
FROM centos:7
MAINTAINER developer
RUN yum -y install java
WORKDIR /opt/
COPY test-0.0.1-SNAPSHOT.jar /opt/test/
COPY application.yml /opt/test/application.yml
EXPOSE 8899
ENTRYPOINT ["java","-Dspring.config.location=/opt/test/application.yml","-jar","/opt/test/test-0.0.1-SNAPSHOT.jar"]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。