结合容器使用
拉取 nginx 镜像
# 自行安装docker
docker pull nginx # 拉取最新的nginx镜像
docker images # 验证运行挂载目录的容器
docker run -p 80:80 -p 443:443 -v path/to/your/nginx.conf:/etc/nginx/nginx.conf -v path/to/your/files:/usr/share/nginx/html -v path/to/your/cert:/etc/nginx/cert --name nginx-main -d nginx
参数解释:
- docker run,运行容器
- -p 80:80 -p 443:443,映射端口
- -v path/to/your/nginx.conf:/etc/nginx/nginx.conf -v path/to/your/files:/usr/share/nginx/html -v path/to/your/cert:/etc/nginx/cert,挂载目录,这样可以方便的在宿主机中操作配置文件、替换证书、部署静态资源
- —name nginx-main,运行的容器的别名,方便后续其他操作(如 stop、start 等等)
- -d,后台运行
- nginx,运行的目标镜像
运行 Dockerfile 构建的容器
项目根目录下新建 Dockfile 文件,Dockfile 文件的编写需自行查看相关教程。
# 分阶段构建,只需要第一次构建的产物
FROM node:12 AS build
WORKDIR /app
COPY . .
RUN npm install --registry=https://registry.npm.taobao.org
RUN npm run build
# 以最新的nginx镜像为基础镜像
FROM nginx:latest
# 分阶段构建,假设这里已经构建好了所需的静态资源,存放在path/to/your/files,假设为dist
# 复制静态资源文件html、css、js、png等等
COPY --from=build /app/dist /usr/share/nginx/html
# 复制nginx配置文件
COPY --from=build /app/path/to/your/nginx.conf /etc/nginx/nginx.conf
EXPOSE 80# 构建镜像
docker build -t 镜像名 .
# 运行容器:
docker run -p 8888:80 --name nginx-main -d 镜像名