Docker 方式 部署 vue 项目 (docker + vue + nginx)

1.安装好 nginx 。

2. 把 vue 项目的源码克隆到确定目录下。用 git 管理,所以直接 git clone 到既定目录就行了。

如我的目录是:/root/jiangyu/projects/gentle_vue/gentle_vue_code 。

3. 项目打包:

 npm run build 

复制

会自动生成 dist 文件夹 。

4. 在任意目录下新建文件 dockerfile 。内容如下:

# 设置基础镜像
FROM nginx
# 定义作者
MAINTAINER jiangyu
# 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
COPY dist/  /usr/share/nginx/html/

复制

5. 构建镜像:

# -t 是给镜像取名。
# 最后有一个点 “.”,表示使用当前路径下的 dockerfile 文件,也可以指定使用其它路径的。
docker build -t gentle-vue . 

复制

查看新生成的镜像:

docker images

复制

6.启动容器

# -p :配置端口映射,格式是外部访问端口:容器内端口
# -d :后台运行  
# --name : 给容器取名
# 最后有 2 个 gentle-vue,前面一个是给容器取的名字,后面一个是使用的镜像的名字
 docker run -p 3000:80 -d --name gentle-vue gentle-vue

复制

查看是否运行成功:

7. 浏览器访问:http://服务器IP:3000/#/

这就是我项目的测试页面。 OK 了。

--------------------------

2018.11.28 后记:

每次修改都要重新 部署太麻烦 ,于是写了个很简单的脚本,运行就部署:

脚本内容只是把以上命令整合到一起执行:

# 备份原代码
tar -zcvf gentle-vue.tar ./gentle-vue

# 删除原代码文件夹
rm -rf gentle-vue

# 拉取代码
git clone https://gitee.com/FJ_WoMenDeShiJie/gentle-vue.git
echo -e "\033[32m\n代码拉取\n\033[0m"

# 拷贝 node_modules
cp ./node.tar ./gentle-vue

# build 打包 vue 项目,生成 dist 文件夹
cd ./gentle-vue
tar -zxvf node.tar
npm run build
echo -e "\033[32m\nvue项目打包完成\n\033[0m"

# 删除原镜像
docker rmi gentle-vue &> /dev/null
echo  -e "\033[32m\n删除原镜像文件\n\033[0m"

# 拷贝 dockerfile 到工程目录下
cp ../dockerfile ./

# 构建镜像
docker build -t gentle-vue .
echo -e "\033[32m\n新镜像构建成功\n\033[0m"

# 删除原容器
docker rm -f gentle-vue

# 启动容器
docker run -p 3000:80 -d --name gentle-vue gentle-vue
echo -e "\033[32m\n前端工程部署完成\n\033[0m"

复制

这样部署就方便多了。

另后端工程部署方式见:Docker 部署应用、jar 工程 docker 方式部署

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将 Vue 项目部署Docker 上,可以使用以下步骤: 1. 编写 Dockerfile 文件:创建一个包含 NginxDocker 镜像,并将 Vue 项目文件复制到镜像中。 2. 构建 Docker 镜像:使用 Dockerfile 构建 Docker 镜像,例如可以使用命令:`docker build -t my-nginx-vue-image .` 3. 运行 Docker 容器:使用刚刚构建的 Docker 镜像来创建和运行一个 Docker 容器,例如可以使用命令:`docker run -d -p 80:80 my-nginx-vue-image` 4. 访问 Vue 项目:现在可以通过浏览器访问 Vue 项目,例如可以在浏览器中输入 `http://localhost` 来访问项目。 这样,您就可以在 Docker部署 Vue 项目了。 ### 回答2: 在将Vue项目部署到生产环境中,我们需要将Vue项目打包为静态资源,然后将静态资源放置到Web服务器上。在这里,我们介绍如何使用DockerNginxVue项目部署到Web服务器中。 第一步,将Vue项目打包为静态资源。我们可以使用Vue CLI提供的打包命令将Vue项目打包为生产版本。在终端中运行命令: ``` npm run build ``` 执行该命令后,Vue项目会将打包好的静态文件放置到dist目录下。 第二步,创建Docker文件。我们需要编写一个Dockerfile文件,并定义好环境变量和Docker镜像的基础镜像。在这里我们以Node.js作为基础镜像,Dockerfile文件的内容如下: ``` # 使用node.js基础镜像 FROM node:14.15.0-alpine3.10 as builder # 设置工作目录 WORKDIR /app # 复制package.json及package-lock.json到工作目录 COPY package*.json ./ # 安装依赖 RUN npm install # 将源码复制到工作目录 COPY . . # 进行构建 RUN npm run build # 运行时镜像的基础镜像 FROM nginx:1.19.6-alpine # 复制构建出的静态资源到镜像中 COPY --from=builder /app/dist /usr/share/nginx/html # 复制Nginx配置文件 COPY nginx.conf /etc/nginx/nginx.conf # 暴露80端口 EXPOSE 80 ``` 第三步,编写Nginx配置文件。我们需要将Nginx配置文件复制到Docker镜像中,如下所示: ``` # nginx.conf # 在http下添加gzip配置 http { gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; server { listen 80; server_name localhost; # 静态资源文件所在目录 root /usr/share/nginx/html; # 让Nginx支持Vue路由 location / { try_files $uri $uri/ /index.html; } } } ``` 第四步,构建Docker镜像。我们需要在终端中运行构建镜像的命令。在终端中进入Dockerfile所在的目录,并执行以下命令: ``` docker build -t my-vue-app:latest . ``` 命令中,“my-vue-app”是镜像的名称,“latest”是镜像的标签。如果构建成功,会在镜像列表中看到该镜像。 第五步,启动Docker容器。我们需要运行以下命令将镜像启动为Docker容器: ``` docker run --name my-vue-app -d -p 80:80 my-vue-app:latest ``` 命令中,“my-vue-app”是容器的名称,“-d”表示在后台运行,“-p 80:80”表示将容器的80端口映射到主机的80端口。如果成功运行容器,可以在浏览器中访问Vue项目。 ### 回答3: Docker 是一个强大的容器化工具,而 Nginx 是一个流行的跨平台 Web 服务器软件,可以很好地与 Docker 结合使用以部署 Vue 项目。 以下是一些步骤来完成这个过程: 1. 第一步是创建 Vue 项目。在根目录下创建一个 Dockerfile 文件,并在其中添加以下代码: ``` # 使用了一个 Node.js 镜像,以安装项目的依赖 FROM node:latest as build-stage WORKDIR /app COPY package*.json ./ RUN npm install COPY ./ . RUN npm run build # 使用了一个 nginx 镜像,替换默认的 nginx.conf 文件,以及项目的 build 文件夹 FROM nginx:latest COPY --from=build-stage /app/dist/ /usr/share/nginx/html COPY nginx.conf /etc/nginx/nginx.conf ``` 2. 在项目根目录下添加 nginx.conf 文件并进行配置。例如: ``` user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { # 后端服务接口地址 upstream backend { server backend:80; } include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; location / { root /usr/share/nginx/html; index index.html; try_files $uri $uri/ /index.html; } # 反向代理 location /api { rewrite /api/(.*) /$1 break; proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } } ``` 3. 接下来,通过 Docker 命令构建镜像并运行容器: ``` // 构建镜像 docker build -t vue-nginx . // 运行容器 docker run -it -p 80:80 --rm --name vue-nginx-container vue-nginx ``` 到此为止,Vue 项目就已经成功部署Docker 容器中并通过 Nginx 服务器运行了。 总的来说,使用 DockerNginx 部署 Vue 项目可以大大简化部署流程,并提供更好的容错能力和安全性。在实践中,这种部署方式已被广泛采用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值