Dockerfile 常用语法
FROM - 构建该 image 时使用的基础 image
WORKDIR - RUN
、CMD
、ENTRYPOINT
、ADD
、COPY
指令的工作目录。
ADD - 与 cp 指令相近
RUN - 基于 FROM 执行的指令(注意:多个RUN之间不会传递环境变量)
# Install pulumi
RUN curl -fsSL https://get.pulumi.com | sh
RUN export PATH=$PATH:/home/ubuntu/.pulumi/bin
RUN export PULUMI_ACCESS_TOKEN=pul-c6b3fdfe891b2afca74c39eabd5649550d95ef0b
RUN pulumi login # 这里会报错,因为找不到PATH和PULUMI_ACCESS_TOKEN。
CMD - 该 image 启动 container 时,执行的指令
创建 Dockerfile
$ cd project_root_dir
$ cat > Dockerfile << EOF
FROM alpine
WORKDIR /data/
ADD . /data/
RUN apk update && apk add nodejs npm && npm i -g @nestjs/cli && npm install --production && npm run build
CMD npm run start:prod
EOF
构建镜像
$ docker build build -t image_name .
启动容器
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
077767357755.dkr.ecr.cn-northwest-1.amazonaws.com.cn/worldzhy latest c3d4841f8d1f 43 minutes ago 1.64GB
worldzhy latest c3d4841f8d1f 43 minutes ago 1.64GB
$ docker run c3d4841f8d1f