将前端SPA应用部署到docker容器


前言

如今容器化技术越来越流行,相信很多小伙伴都遇到过将前端SPA应用打包到docker中的需求。那么今天我们就来带着大家部署一遍


一、所需材料

1.项目文件 dist
2.nginx.conf (配置反向代理)
3.Dockerfile(将项目打包成容器)

二、准备工作

1.项目文件

npm run build

执行完毕后会生成dist文件夹(可改名)

2.nginx配置

创建nginx.conf文件夹

server {
    listen 80;

    # gzip config

​    gzip on;
​    gzip_min_length 1k;
​    gzip_comp_level 9;
​    gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
​    gzip_vary on;
​    gzip_disable "MSIE [1-6]\.";

    root /usr/share/nginx/html;  #代码所在的文件夹
    
    # 为browser router准备的
    location / {
        try_files $uri $uri/ /index.html;
    }
    
    # 配置反向代理
    location  ~/web/ {
            proxy_pass http://xxx.xxx.xxx.xxx:10013;
        }
    location ~/api/ {
            proxy_pass http://xxx.xxx.xxx.xxx:8077;
        }

}


3.Dockerfile

FROM nginx
COPY ./dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80

三、打包镜像并启动容器

将dist文件夹、dockerfile文件、nginx.conf放在同一个目录下
然后执行生成镜像 和docker容器

docker build -t imageName .
docker run -it -p 1037:80 --name containerName imageId

访问 http://ip:1037 便可看到你的项目了


总结

以上是将前端spa项目部署到docker容器的教程,其中文件名、端口号可以根据自己的情况更改

Docker 是一种流行的容器技术,可以用来部署不同的应用程序,包括前端应用程序。Vue 是一种流行的前端框架,用于构建现代SPA 单页面应用程序。当我们使用 Docker部署 Vue 应用程序时,我们需要将 Vue 应用程序打包到 Docker 镜像中,并设置端口映射以便能够通过 Web 浏览器访问该应用程序。 Vue 应用程序通常使用 Node.js 作为运行时环境,因此我们可以使用 Node.js Docker 镜像来部署 Vue 应用程序。下面是一个示例 Dockerfile: ``` FROM node:14.16.0-alpine3.13 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 8080 8081 8082 CMD ["npm", "run", "serve"] ``` 在上面的 Dockerfile 中,我们首先从 Node.js 14.16.0-alpine3.13 镜像中构建一个容器。工作目录被设置为 /app。然后我们将 package.json 和 package-lock.json 文件复制到容器中,并运行 npm install 安装所有依赖。复制所有其他文件后,我们设置 EXPOSE 指令以将端口 8080、8081 和 8082 映射到宿主环境。最后,我们可以使用 CMD 指令启动和运行 Vue 应用程序。 在 Docker 容器中运行 Vue 应用程序后,我们可以使用 docker run 命令将容器映射到计算机上的端口。例如,如果我们在本地计算机上使用端口 8000 作为映射端口,我们可以运行以下命令: ``` docker run -p 8000:8080 -p 8001:8081 -p 8002:8082 vue-app ``` 在上述命令中,-p 选项指定了端口映射。我们将容器中端口 8080、8081 和 8082 映射到宿主计算机上的端口 8000、8001 和 8002。vue-app 是我们构建的 Docker 镜像的名称。 总结来说,我们可以使用 Docker 容器部署 Vue 应用程序,并使用端口映射将容器中的端口映射到宿主计算机上的端口。因此,我们可以在一个计算机上同时运行多个 Vue 应用程序。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值