使用docker构建vue项目并成功运行在本地和线上
创始人
2024-03-29 04:19:53
0

先说本地环境

windows10 + node + vue + docker都已经安装齐全

获取nginx镜像

因为要用这个镜像来构建你的vue项目,就像给vue项目提供一个环境一样

docker pull nginx

创建 nginx config配置文件

在项目根目录下创建文件default.conf

server {listen       80;server_name  localhost; # 修改为docker服务宿主机的ip, 经测试不用修改也可以location / {root   /usr/share/nginx/html;index  index.html index.htm;try_files $uri $uri/ /index.html =404;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}

 该配置文件定义了首页的指向为/usr/share/nginx/html/index.html, 所以我们可以一会把构建出来的index.html文件和相关的静态资源放到/usr/share/nginx/html目录下。

创建Dockerfile文件

在项目根目录下创建Dockerfile文件,写入下面内容

FROM nginxRUN rm /etc/nginx/conf.d/default.confADD default.conf /etc/nginx/conf.d/COPY dist/ /usr/share/nginx/html/

说明

  • FROM nginx:该镜像是基于nginx:latest镜像构建的
  • RUN rm /etc/nginx/conf.d/default.conf:删除目录下的default.conf文件
  • ADD default.conf /etc/nginx/conf.d/:将default.conf复制到/etc/nginx/conf.d/下,用本地的default.conf配置来替换nginx镜像里的默认配置
  • COPY dist/ /usr/share/nginx/html/:将项目根目录下dist文件夹(构建之后才会生成)下的所有文件复制到镜像/usr/share/nginx/html/目录下

 生成生成环境包

首先确保安装了node.js,npm可用

在项目根目录下执行下面命令(和package.json文件同级)

安装依赖

npm install

构建

npm run build

执行结束之后会在项目根目录下生成一个dist的文件夹

构建docker镜像

docker build -t cvport .

注意不要少了最后的“.”(点)

-t是给镜像命名,.(点)是基于当前目录的Dockerfile来构建镜像

查看本地镜像

docker images

 到这里我们的vue应用镜像已经创建成功,接下来,我们基于该镜像启动一个docker容器

启动docker容器 

docker run -d -p 9090:80 --name cvpod cvport
  • docker run:基于镜像启动一个容器
  • -d:后台方式启动
  • -p 9090:80: 端口映射,将宿主机的9090端口映射到容器的80端口
  • --name:容器名,我起的叫mms
  • zz-mms:要启动的镜像名称

查看启动的容器 

docker ps

 访问

 现在我们已经启动了,访问宿主机的地址:9090就可以看到我们部署的网站了

部署到服务器上

同样的操作部署到服务器上后,输入 服务器ip:9090 端口即可访问,如果不行,请开启服务器的安全组里面,添加9090端口:

 

跨域

如果你的后端接口是在别的服务器上部署的,这时候我们的default.conf就要加一个反向代理,使用下面的default.conf,然后重新构建docker镜像,启动

server {listen       80;server_name   49.235.160.132; # 修改为docker服务宿主机的iplocation / {root   /usr/share/nginx/html;index  index.html index.htm;try_files $uri $uri/ /index.html =404;}location /pro-api{ # pro-api是vue项目里.env.production里的地址proxy_pass 1.1.1.1;  # 这里写的是你后端接口的地址}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}

docker常用命令

Docker环境信息   info、version
镜像仓库命令      login、logout、pull、push、search
镜像管理          build、images、import、load、rmi、save、tag、commit
容器生命周期管理  create、exec、kill、pause、restart、rm、run、start、stop、unpause
容器运维操作      attach、export、inspect、port、ps、rename、stats、top、wait、cp、diff、update
容器资源管理      volume、network
系统信息日志      events、history、logs
1.events打印容器的实时系统事件
2.history 打印出指定镜像的历史版本信息
3.logs打印容器中进程的运行日志
docker --help       #查看docker命令
docker info         #docker 详细信息,镜像和容器
docker version      #查看docker版本
帮助文档地址:https://docs.docker.com/reference/

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...