vue前端项目打包成Docker镜像并运行的实现

目录
  • vue前端项目打包成Docker镜像并运行
  • 前端将vue打包成镜像发布
    • 一、总体预览
    • 二、打包配置
    • 三、问题思考

vue前端项目打包成Docker镜像并运行

首先说明咱们的前端项目是基于Vue的,反向代理使用的是nginx

1.打包vue前端项目生成dist文件夹上传至服务器

新建一个文件夹,叫vueDockerTest,下面的文件都需要。

cert是你存放ssl证书的文件夹,nginx.conf 是nginx的配置文件,dist是你打包的前端静态文件

2.修改Dockerfile文件

# 基于nginx:1.20镜像
FROM nginx:1.20
# 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
COPY dist/ /usr/share/nginx/html/dist/
# 用本地的 nginx.conf 配置来替换nginx镜像里的默认配置
COPY nginx.conf /etc/nginx/nginx.conf
# 将证书文件内容复制到/usr/local/nginx/文件夹下
COPY cert/ /usr/local/nginx/cert/

3.修改nginx.conf文件

#user  nobody;
worker_processes  1;
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;
    # HTTPS server
    server {
        listen 443 ssl;
        server_name  localhost;
        ssl_certificate      /usr/local/nginx/cert/server.crt;
        ssl_certificate_key  /usr/local/nginx/cert/server.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
                location / {
            root   /usr/share/nginx/html/dist;
                        try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
                location /backend/{
                       proxy_set_header Host $http_host;
                       proxy_set_header X-Real-IP $remote_addr;
                       proxy_set_header REMOTE-HOST $remote_addr;
                       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                       client_max_body_size 20M;
                       proxy_send_timeout 500;
                       proxy_read_timeout 480;
                       proxy_pass http://localhost:8992;
               }
                error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

4.打包成docker镜像

docker build -t nss-web:1.0 .

执行docker images可以查看到已经生成的docker镜像

5.运行前端镜像容器

容器内部的端口号是443 我使用--net=host,就不需要映射端口号了

如果防火墙开着的话,需要放行443和80端口哦

docker run -d --privileged=true --name nss-web1.0 --restart always --net=host nss-web:1.0
--privileged=true        #容器内部拥有root权限
--restart always         #自启动
--net=host               #网络与宿主机保持一致

6.使用https://你的IP地址即可访问运行

前端将vue打包成镜像发布

提示:以下是本篇文章正文内容,下面案例可供参考

一、总体预览

二、打包配置

2.1 default.conf

server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html/;
        index  index.html index.htm;
        # try_files $uri $uri/ /index.html;
    }
    location /finalLearn {
        alias  /usr/share/nginx/html/;
        # index index.html index.htm;
        try_files $uri /finalLearn/index.html;
    }
    error_page   500 502 503 504  /50x.html;
}

2.2 Dockerfile

# 基础镜像
FROM nginx
MAINTAINER cw
# 删除原有的default.conf文件
RUN rm /etc/nginx/conf.d/default.conf
# 增加自定义default.conf文件到对应目录
ADD default.conf /etc/nginx/conf.d/
# 将dist目录下的文件复制到nginx内的目录下,与上文对应
COPY dist/ /usr/share/nginx/html/

2.3 打包

docker build -t <自定义tag>

三、问题思考

打包发布后,有时候出现错误 Uncaught SyntaxError: Unexpected token <

大多情况下静态文件js、css等访问不到的问题。具体配置需和前端打包方式对应上。

但是如果条件允许可以把js等静态文件放在OSS上,这种问题也不会发生,同时也可cdn加速。具体结当下场景。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Vue项目打包并部署nginx服务器的详细步骤

    目录 使用场景: 一.打包 二.部署(nginx) 总结 使用场景: 我们常使用前后端分离项目时,会需要将前端vue打包然后部署. 一.打包 vue项目其实可以直接通过一下语句进行打包: npm run build 默认打包情况如下: 当我们需要将打包名称以及静态资源位置进行修改时便需要进行相应的配置: 1.首先在项目根目录下创建vue.config.js文件 配置内容如下所示(附带跨域问题解决): module.exports = { //打包 publicPath: './', output

  • 一篇文章教会你部署vue项目到docker

    目录 第一步 第二步,生成镜像 第三步,生成(启动)一个容器 总结 让我在5分钟你教不会你把项目部署到docker,前提是你得服务器装有docker,这里方便装宝塔,大佬当我没说. 大致分为3步: 第一是弄一个nginx的配置文件然后构建镜像的时候把它放进去取代原来的配置和写Dockerfile生成镜像的一些配置 第二是生成镜像 第三是生成启动容器,ok开始,顺便抛砖引玉 第一步 server { listen 80; server_name localhost; # docker服务宿主机的i

  • vue-cli3 项目从搭建优化到docker部署的方法

    1. 创建一个vue项目 相信大部分人都已经知道怎么创建项目的,可以跳过这一节,看下一节. 1.1 安装@vue/cli # 全局安装 vue-cli脚手架 npm install -g @vue/cli 等待安装完成后开始下一步 1.2 初始化项目 vue create vue-cli3-project (1)选择一个预设 可以选择默认预设,默认预设包含了 babel , eslint 我们选择更多功能 Manually select features 回车后来到选择插件 (2)插件选择 这边

  • vue前端项目打包成Docker镜像并运行的实现

    目录 vue前端项目打包成Docker镜像并运行 前端将vue打包成镜像发布 一.总体预览 二.打包配置 三.问题思考 vue前端项目打包成Docker镜像并运行 首先说明咱们的前端项目是基于Vue的,反向代理使用的是nginx 1.打包vue前端项目生成dist文件夹上传至服务器 新建一个文件夹,叫vueDockerTest,下面的文件都需要. cert是你存放ssl证书的文件夹,nginx.conf 是nginx的配置文件,dist是你打包的前端静态文件 2.修改Dockerfile文件 #

  • 使用Maven将springboot工程打包成docker镜像

    目录 Maven打包成docker镜像 1.增加docker插件依赖 2.docker插件的配置 3.编写Dockerfile 4.Maven命令打包 5.注意事项 6.Window10 下安装docker Maven打包成docker镜像 由于工作原因,需要通过maven将springboot项目打包成docker镜像,先前以为只能在linux上完成,最近调研了一下,也可以在window环境下进行打包. ​ 下面以thinkpad E470,windows10操作系统以及eclipse开发集成

  • Java应用打包成Docker镜像

    目录 怎么把Java应用打包成Docker镜像? Maven插件构建镜像 用Docker的多阶段构建打包镜像 怎么把Java应用打包成Docker镜像? 对熟悉Docker的同学这应该是一个很简单的问题,把项目打包成JAR包然后在Dockerfile里用ADD命令把JAR文件放到镜像里,启动命令设置执行这个JAR文件即可. 比如一个使用Maven构建的Spring应用就可以用下面这个Dockerfile构建镜像. FROM openjdk:8-jre ADD target/*.jar /appl

  • goland把go项目打包进docker镜像的全过程记录

    目录 1. goland配置Dockerfile 2. goland构建项目 3. Dockerfile执行 总结 1. goland配置Dockerfile 项目中新建Dockerfile文件 配置Dockerfile 在项目中新建Dockerfile 文件,内容如下 FROM golang:alpine ENV GO111MODULE=on \ CGO_ENABLE=0 \ GOOS=linux \ GOARCH=amd64 \ GOPROXY="https://goproxy.cn,dir

  • spring boot项目打包成war在tomcat运行的全步骤

    前言 使用maven创建的springboot项目,默认是jar包,springboot还有自己带的tomcat.现在需要将项目打包,并部署到服务器tomcat下面. 下面就让我们来一起把spring-boot项目按照平常的web项目一样发布到tomcat容器下,下面话不多说了,来一起看看详细的介绍吧 一.修改打包形式 在pom.xml里设置 <packaging>war</packaging> 二.移除嵌入式tomcat插件 在pom.xml里找到spring-boot-star

  • Springboot打包为Docker镜像并部署的实现

    一.Springboot项目运行正常 打包前,Springbooot项目在本地必须是运行正常的.我们这里使用本专栏写起来的项目,如下所示: 来访问一下我们接口,做连通性验证测试: 注意这里的地址是本地地址,因为我是在本地IDEA里面运行的项目! 二.Maven打包项目 执行如下命令即可: // 先清空再打包 mvn clean package 打包成功之后如下所示,提示BUILD SUCCESS,target目录下会有打好的jar包: 注意:此处我们打包为jar包,直接部署在Docker中.如果

  • jenkins+docker+nginx+nodejs持续集成部署vue前端项目

    目录 前提: 思路: 步骤: 配置nodejs工具 git代码文件目录如下 Dockerfile的文件内容 nginx.conf主配置文件的内容 最近比较闲,尝试了一下docker部署业务测试环境的前端vue项目,作此记录 这里我的环境是Jenkins+docker+harbor+nginx部署,但是由于此项目以节点形式加入jenkins,构建和部署都在一台,所以没有用到harbor,但是生产环境可能部署和构建不在一台,会需要先推送到harbor,也有详细步骤. 前提: 1安装好了jenkins

  • 解决cordova+vue 项目打包成APK应用遇到的问题

    公司前端界面用的是vue,我要嵌入到Android中生成App 第一步:安装node node安装:直接进入官网https://nodejs.org/zh-cn/,下载最新版本安装.安装之后在命令行中使用"node -v" 检查安装是否成功. npm安装:由于新版的nodejs已经集成了npm,所以node安装时npm也一并安装好了.同样可以通过输入 "npm -v" 来测试是否成功安装. 第二步:安装cordova 1. 打开cmd 输入命令:npm instal

  • vue项目打包成桌面快捷方式(electron)的方法

    网上有很多相关的例子了,所以我只是把自己的问题记录一下. 1.把electron的官方例子clone下来 git clone https://github.com/electron/electron-quick-start 2.进入项目,输入以下命令,运行项目 npm install//下载依赖包 npm start//启动 3.弹出界面 4.接下来将自己的vue项目打包,运行npm run build 5.将打包的项目复制到electron-quick-start的根目录 6.重新运行一下 n

  • 使用electron将vue-cli项目打包成exe的方法

    如果你已经做好了一个vue的项目,并且想要将他打包成exe,那么请继续阅读. 首先你可以下载一个demo了解一下. git clone https://github.com/electron/electron-quick-start cd electron-quick-start npm install npm start 这个demo主要就是main.js和package.json 打开main.js const {app, BrowserWindow} = require('electron

随机推荐