前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端vue+docker打包发布

前端vue+docker打包发布

原创
作者头像
爽朗地狮子
修改2022-09-15 17:19:27
1.9K0
修改2022-09-15 17:19:27
举报
文章被收录于专栏:云原生系列

一. Vue生成

1. 初始化工程

选择一个文件夹

代码语言:txt
复制
npm init vue@latest

然后

代码语言:txt
复制
roject name: … <your-project-name>
✔ Add TypeScript? … No / Yes
✔ Add JSX Support? … No / Yes
✔ Add Vue Router for Single Page Application development? … No / Yes
✔ Add Pinia for state management? … No / Yes
✔ Add Vitest for Unit testing? … No / Yes
✔ Add Cypress for both Unit and End-to-End testing? … No / Yes
✔ Add ESLint for code quality? … No / Yes
✔ Add Prettier for code formatting? … No / Yes

Scaffolding project in ./<your-project-name>...
Done.

2. 编译出包

代码语言:txt
复制
npm run build

此时会有一个dist文件夹,里面是编译出来的包

image.png
image.png

3. 本地调试

代码语言:txt
复制
npm run dev

二. Docker打包

思路是本地用nginx包装让外部可以来调用,开放9030端口

1. 建立cms文件夹,同时

dist丢进去,然后建立Dockerfile和nginx.conf

Dockerfile

代码语言:txt
复制
# 设置基础镜像
FROM nginx
# 定义作者
MAINTAINER tomxiang
# 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
COPY dist/  /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf
RUN echo 'echo init ok!!'

EXPOSE 80

nginfx.conf

代码语言:txt
复制
worker_processes auto;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
 
    sendfile        on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;
 
    #gzip  on;
 
    client_max_body_size   20m;
    server {
        listen       80;
        server_name  localhost;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
     location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
     } 
}

2. 打包镜像以及跑容器

代码语言:txt
复制
docker build -t vue:1.0 -f Dockerfile .
docker run --name=vue_1.0 -d -p 9030:80 vue:1.0

三. 配置自己的nginx

这里的nginx是开放对外80端口,用来反向代理出最后的容器

image.png
image.png
代码语言:txt
复制
docker exec -it 682987294b1a /bin/bash
cd /etc/nginx/conf.d/
vim default.conf
image.png
image.png

location /中配置的是vue1.0容器的ip

docker inspect 7f8fedfce19e

image.png
image.png

这里⚠️Gateway一样才能够填写到location,否则启动docker的时候要加上--link操作

四. 打开网页

http://www.engineer-club.cn/

http://119.45.4.173:9030/

两者表现一样, 大功告成

五. 常见问题

1. 我本地开的是8081端口,不起作用

原因:本地要开放80端口,因为cms中的nginx.conf配置的

代码语言:txt
复制
    server {
        listen       80;

调试的时候可以进入容器中看到

代码语言:txt
复制
apt-get update
apt-get install net-tools
netstat -an
image.png
image.png

80端口被监听,8081无效

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. Vue生成
    • 1. 初始化工程
      • 2. 编译出包
        • 3. 本地调试
        • 二. Docker打包
          • 1. 建立cms文件夹,同时
            • 2. 打包镜像以及跑容器
            • 三. 配置自己的nginx
            • 四. 打开网页
            • 五. 常见问题
              • 1. 我本地开的是8081端口,不起作用
              相关产品与服务
              云服务器
              云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档