1. 构建镜像
docker build -t 镜像名称:镜像TAG --build-arg URL=http://localhost:8081 --build-arg PORT=2000 --build-arg SSL_PORT=443 -f Dockerfile .
如果不运行https,则要把最后的-S 指定证书与SSL_PORT注释掉
Dockerfile内容如下:
FROM node:14.17.0-alpine ARG URL=http://localhost:8080/ # 设定URL变量初始值为:http://localhost:8080/ ENV URL ${URL} # 获取传递的动态URL变量值 RUN echo ${URL} # 打印动态URL变量值 RUN export NODE_OPTIONS=--max_old_space_size=8172 # 设定临时环境变量 RUN mkdir -p /app # 在镜像内根目录下 创建文件夹app COPY ./package.json /app/package.json # 将执行当前构建命令所在的path的同级package.json文件 复制到镜像内app文件夹中 ARG PORT=3000 # 设定PORT变量初始值为:3000,即http服务的端口 ENV PORT ${PORT} # 获取传递的动态PORT变量值,即https服务的端口 ARG SSL_PORT=443 # 设定SSL_PORT变量初始值为:443 ENV SSL_PORT ${SSL_PORT} # 获取传递的动态SSL_PORT变量值 RUN npm config set registry https://registry.npm.taobao.org \ && npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass \ && npm install -g serve # npm设定淘宝镜像源地址 # 依赖可使用serve或http-server # RUN npm install -g http-server RUN cd /app \ && npm install # 进入app文件夹下,执行npm install命令 COPY ./ /app # 将执行当前构建命令所在的path同级的所有文件 复制到镜像内app文件夹中 WORKDIR /app # 指定WORKDIR 工作目录 # RUN mv /node_modules /app/ 如果本地有依赖,且部署环境与当前构建镜像的环境一致 # 则可在当前构建环境中执行 npm install, 然后将依赖文件夹复制到app文件夹中 CMD cd /app \ && npm run build \ && serve -S --ssl-cert ./certificate/server.crt --ssl-key ./certificate/server.key -p ${SSL_PORT} dist \ && serve -p ${PORT} dist # 打包 # https 运行(需要证书) # http 运行 EXPOSE ${SSL_PORT} ${PORT}
标签:npm,vue,RUN,URL,步骤,app,serve,SSL,PORT From: https://www.cnblogs.com/uoky/p/16981889.html