举例一个dockerfile文件,了解一些dockerfile常用指令
# 以xxx为基础镜像镜像构建
# FROM ...(基础镜像) as ...(别名) 多阶段构建,给这个阶段的镜像起个别名,在后面引用这个阶段的镜像时只需使用该别名
FROM xxx
# 设置构建运行时的变量
ARG ENV
# 设置环境变量
ENV ENV=${ENV}
ENV PORT=3000
# 拷贝文件,把当前文件夹的所有文件拷贝到容器的/mnt/dist(.表示当前文件夹)
COPY . /mnt/dist
COPY stop.sh stop.sh
# 设置工作目录(类似于cd),之后的COPY、RUN等命令都会在该工作目录下执行
WORKDIR /mnt/dist
# 构建镜像时执行的命令
RUN npm config set sass-binary-site "https://npm.taobao.org/mirrors/node-sass"
RUN npm config set phantomjs_cdnurl "https://npm.taobao.org/mirrors/phantomjs"
RUN npm i
RUN npm run build
# 指定与外界交互的端口
EXPOSE 3000
# 容器启动时执行该命令(RUN:镜像构建的时候执行,CMD:容器启动时执行)
CMD ["node", "server/dist/app.js"]