Dockerfile入门

Dockerfile入门,包括执行docker的流程、dockerfile的关键字,Dockerfile举例详细说名。

Dockerfile是用来构建Docker镜像的构建文件。  是在Docker中创建镜像最常用的方式,

docker从基础镜像运行容器
执行一条指令并对容器做出修改
提交一个新的镜像层
docker基于一个新的镜像运行一个容器
执行下一条指令,知道所有的指令执行完成

https://wd-jishu.oss-cn-hangzhou.aliyuncs.com/wd/2019/12/image-19.png@!full

# 以gradle:jdk8为基础镜像
FROM gradle:jdk8 AS builder
#在shell中设置一些环境变量(其实就是export)
ENV PROJECT "provider-example"
#在执行RUN后面的shell命令前会先cd进WORKDIR后面的目录
WORKDIR /$PROJECT
#表示将当前文件夹(即Dockerfile所在文件夹)的文件拷贝到容器的/$PROJECT文件夹中
COPY ./ /$PROJECT
#镜像构建时需要运行的命令。
RUN gradle build


FROM openjdk:8-alpine
MAINTAINER 企业级分布式应用服务智慧案场研发团队 <chendh03@mingyuanyun.com>
# 准备 JDK/Tomcat 系统变量
ENV ADMIN_HOME /home/admin
ENV PROJECT "provider-example"
ENV APP_FILE provider-example-0.0.1-SNAPSHOT.jar
# 下载部署 EDAS 演示 JAR 包
RUN mkdir -p $ADMIN_HOME/app/
#拷贝上面打包阶段builder拷贝应用jar过来
COPY --from=builder /$PROJECT/build/libs/$APP_FILE  $ADMIN_HOME/app/app.jar
# 增加容器内中文支持
ENV LANG="en_US.UTF-8"
# 增强 Webshell 使⽤体验
ENV TERM=xterm
# 将启动命令写入启动脚本 start.sh
RUN echo 'java -jar $CATALINA_OPTS $ADMIN_HOME/app/app.jar'> $ADMIN_HOME/start.sh && chmod +x $ADMIN_HOME/start.sh
WORKDIR $ADMIN_HOME
#启动应用程序
CMD ["/bin/sh", "$ADMIN_HOME/start.sh"]

随机文章