使用docker构建vue项目并成功运行在本地和线上
windows10 + node + vue + docker都已经安装齐全因为要用这个镜像来构建你的vue项目,就像给vue项目提供一个环境一样。
·
先说本地环境
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 nginx
RUN rm /etc/nginx/conf.d/default.conf
ADD 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服务宿主机的ip
location / {
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/
更多推荐
已为社区贡献26条内容
所有评论(0)