标签:default 简介 dock osi file 变量 tor 用户 shel
Dockerfile 简介遵守下面原则
最佳实践
# stage 1
FROM node:13.1.0-alpine as builder
LABEL "name"="YP小站"
LABEL version="node 13.1.0"
# 修改alpine源为阿里源,安装tzdata包并修改为北京时间
RUN sed -i ‘s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g‘ /etc/apk/repositories && apk --update add --no-cache tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 声明环境变量
ENV NODE_ENV development
# 声明使用node用户
USER node
# 首次只加入package.json文件,package.json一般不变,这样就可以充分利用Docker Cache,节约安装node包时间
COPY --chown=node:node package.json /app && npm ci
# 声明镜像默认位置
WORKDIR /app
# 加入node代码
ADD --chown=node:node . /app
# build代码
RUN npm run build && mv dist public
# stage 2
# 加入nginx镜像
FROM nginx:alpine
# 拷贝上阶段build静态文件
COPY --from=builder /app/public /app/public
# 拷贝nginx配置文件
COPY nginx.conf /etc/nginx/conf.d/default.conf
# 声明容器端口
EXPOSE 8080
# 启动命令
CMD ["nginx","-g","daemon off;"]
标签:default 简介 dock osi file 变量 tor 用户 shel
原文地址:https://blog.51cto.com/xushaojie/2512098