vue项目发布到docker nginx的方法总结
我总结了以下两种方法可用
一、通过制作镜像,使用镜像生成docker 这个是比较常用的方法,制作镜像(images)后,如果还要生成docker可以直接使用镜像比较方便以下是操作步骤
1.创建目录 分别对应网站文件目录,日志目录,和配置文件目录
mkdir -p /home/OnlineBusiness/nginx_admin_docker/www /home/OnlineBusiness/nginx_admin_docker/logs /home/OnlineBusiness/nginx_admin_docker/conf.d
2.使用npm run build发布vue项目,并且上传到创建的文件目录,并且修改好nginx的配置文件conf.d目录下面的default.conf并且上传到conf.d目录,每个人的配置可能都不一样,以下是我的配置文件
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
client_max_body_size 200m;
if (!-e $request_filename) {
rewrite ^/(.*) /index.html last;
break;
}
# To allow POST on static pages
error_page 404 /index.html;
error_page 405 =200 $uri;
# error_page 405 200 $uri;
}
location ~ /api/ {
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;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://172.16.19.155:8004;
}
location ~ /admin/ {
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;
rewrite ^/(.*)$ /$1 break;
proxy_pass http://172.16.19.155:8030;
}
location ~ /WebApi/ {
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;
rewrite ^/(.*)$ /$1 break;
proxy_pass http://172.16.19.155:8030;
}
#access_log /var/log/nginx/host.access.log main;
}
3.编写dockerfile文件,说明:第一行:指定nginx的镜像来源,第二行:指定作者,第三行:删除默认的配置文件,第四行 添加本地的配置文件,第五行 复制项目文件到nginx目录
dockerfile文件不能带扩展名,放在根目录里面(我这里就是放在/home/OnlineBusiness目录下面)
FROM nginx MAINTAINER rxyhj
RUN rm /etc/nginx/conf.d/default.conf
ADD conf.d/default.conf /etc/nginx/conf.d/
COPY www/ /usr/share/nginx/html/
4.创建镜像文件,在命令行下面,切换到dockerfile所在的文件夹,使用以下命令创建镜像文件,后面的.不能忘记,表示dockerfile文件夹在当前目录
docker build -t 镜像名称:版本号 .
5. 使用镜像文件创建并启动容器,其中8002是本机使用的端口号,80是容器的端口,执行完命令后可使用本地IP加端口号访问
docker run --name=容器名称 -p 8002:80 -d 镜像名称:版本号 .
二、通过命令行的方法发布,该方法稍微麻烦一点,如果只发布一次可以使用该方法,操作步骤如下
1.新建一个默认的nginxdocker,其中nginx是本地已有的nginx文件,如果没有要先创建
docker run -id --name --restart=always -e TZ=Asia/Shanghai -d nginx -p 80:80 nginx
2.创建目录 分别对应网站文件目录,日志目录,和配置文件目录
mkdir -p /home/OnlineBusiness/nginx_admin_docker/www /home/OnlineBusiness/nginx_admin_docker/logs /home/OnlineBusiness/nginx_admin_docker/conf.d /home/OnlineBusiness/nginx_admin_docker/conf
3.复制默认nginx默认配置文件到配置文件目录,其中 de3bd9fcb694 是默认nginxdocker的容器Id,可以通过dokcer ps查看
docker cp de3bd9fcb694:/etc/nginx/nginx.conf /home/OnlineBusiness/nginx_test/conf
docker cp de3bd9fcb694:/etc/nginx/conf.d /home/OnlineBusiness/nginx_test/
4.停止默认配置nginx docker 其中 de3bd9fcb694 是默认nginxdocker的容器Id
docker stop de3bd9fcb694
5.删除默认配置 其中 de3bd9fcb694 是默认nginxdocker的容器Id
docker rm de3bd9fcb694
6.将发布后的vue项目上传到创建的网站文件目录,修改配置文件,如果有默认的配置文件,前面1,3,4,5步可以不需要,直接将配置文件复制到配置文件夹中即可
7.重新创建容器,并且指定容器的文件目录,日志目录、配置文件目录与本地的目录映射,映射后如果修改了本地对应目录的文件,重启容器后会同步过去
docker run -d -p 8200:80 --name shoppc --restart=always -e TZ=Asia/Shanghai -d -v /home/OnlineBusiness/nginx_admin_docker/www:/usr/share/nginx/html -v /home/OnlineBusiness/nginx_admin_docker/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/OnlineBusiness/nginx_admin_docker/conf.d:/etc/nginx/conf.d -v /home/OnlineBusiness/nginx_admin_docker/logs:/var/log/nginx nginx
8.启动容器 shoppc为容器名称,也可以使用Id
docker start shoppc
9.修改nginx映射配置 -it参数表示分配一个伪终端 shoppc为容器名称 /bin/bash表示对容器执行bash操作,也可以在本地目录修改配置文件,然后重启容器也可以生效
1). docker exec -it shoppc /bin/bash // 进入容器内部
2). vim /etc/nginx/conf.d/default.conf // 修改nginx配置文件(如果vim命令不可用则需要安装执行以下命令安装 apt-get update (更新安装包源,否则可能无法运行vim的安装语句),apt-get install vim 安装vim)
以上方法和步骤都经过亲自动手实践是可以走得通的,在此记录下来,以免以后不记得了
vue项目发布到docker nginx的方法总结的更多相关文章
- linux vue项目+npm run build + nginx
系统 环境 vue nginx 步骤 1.打包vue项目 2.配置nginx 打包vue项目 1.项目配置 我们使用服务器的8000端口 2.打包 # npm run build 打包成功会创 ...
- 使用jib-maven-plugin将Spring Boot项目发布为Docker镜像
目录 介绍 使用 总结 介绍 将spring boot(cloud)项目发布到docker环境作为镜像,一般常用的一个是com.spotify的docker-maven-plugin这个maven插件 ...
- vue项目部署到docker中
通过nginx镜像部署 vue项目npm run build打包成dist目录,有的打包会加上版本号 启动 docker 将dist目录通过xftp拷贝到linux服务器上,同目录下新建Dockerf ...
- 解决Vue项目打包之后放到nginx下刷新就报错404的问题
最近跟着某机构的教学视频敲了一遍vue项目,但是在windows环境下部署的时候就懵逼了放到nginx下正常跑没问题,但是刷新之后就报404错误 前端项目构建vue 脚手架版本 是@vue/cli 4 ...
- vue项目打包部署到nginx 服务器上
假如要实现的效果如下 http://ip/vue =>是进入首页访问的路径是 usr/local/nginx/html/vue http://ip/website =>是进 ...
- vue项目发布后带路径打开页面报404问题
环境: 后端,python+uwsgi启动 前端:vue 用nginx运行,指定静态目录 问题 :发布后带路径打开页面报404问题,带路径打开即不是打开的主页 解决方案: https://route ...
- Vue项目发布的问题--http://localhost:8088/static/fonts/fontawesome-webfont.af7ae50.woff2
问题:ngnix将8080转成80对外访问,找不对woff2等文件 一\ 搭建环境 ngnix-->conf中 server { listen 80; server_name 10.9.240. ...
- 在vue项目中MD5加密的使用方法
1:安装 npm install --save js-md5 2.引入及使用 方法一:在需要的项目文件中引入 import md5 from 'js-md5'; 使用例子:md5('hello wor ...
- vue项目用nodejs实现模拟数据方法
1)在项目根目录(如demo)中创建一个文件夹,如base,将项目中所有的前端文件全部放到base文件夹中,此时项目demo下只有一个文件夹base 2)通过cmd进入命令窗口,直接执行npm ins ...
- axios在vue项目中的一种封装方法
记录下之前领导封装的axios请求 npm install axios // 安装 单独写个文件配置axios,此处为request.js import axios from 'axios' //自定 ...
随机推荐
- 用 DevEco Studio 模拟器这些能力 没真机也能高效调测鸿蒙原生应用
随着鸿蒙生态的快速发展,越来越多的开发者投身于鸿蒙原生应用的开发中.然而,在实际开发中,真机设备短缺.调测场景复杂等问题常困扰着开发者.为解决这些问题,华为在DevEco Studio上为开发者提供了 ...
- (Pytorch第三天)复制官网教程程序遇到的一系列报错
先说一下,我之前没学过Python,但是鉴于我是一名c语言高手(雾),我决定现学现用. 首先是https://pytorch.org/tutorials/beginner/basics/optimiz ...
- 2、Java语言基础知识
数据类型及范围 四种:整型(byte,short,int,long).浮点型(float,double).字符型(char).布尔型(true,false) 类型 byte short int lon ...
- Intellij IDEA 关闭和开启自动更新提示
Intellij IDEA 几乎所有的设置操作都在 file ->settings 下,进入Settings页面,在左侧搜索框输入updates关键字,取消勾选Automatically che ...
- GoWeb服务器搭建
GoWeb服务器的创建 1.Web工作原理 2.GoWeb服务器的创建 Go提供了一系列用于创建Web服务器的标准库,而且通过Go创建一个服务器的步骤非常简单,只要通过net/http包调用Liste ...
- java实现linux文件的解压缩(确保md5sum一致)
package com.xlkh.device.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java. ...
- openxml文书工具 Aspose 工具 word to pdf
aspose模板生成(文书工具) 动态数据 ${info} ${list.id} ${list.name} ${list.address} ${list.date} ${list.danwei} ${ ...
- Flex布局,绝对定位,层叠布局Stack的详细讲解
Flex布局 Flex布局也叫做:伸缩布局,当子盒子的总和溢出父盒子时默认进行压缩显示 线性布局的原理是基于Flex来设计的. Flex布局默认主轴是:水平向右的,交叉轴垂:直向下 单行或者单列的情况 ...
- .Net Web API 003 添加Controller实现用户登录
1.Get和Post WEB API 中HTTP 请求方式的四个主要方法 (GET, PUT, POST, DELETE).Get一般用于查询.Put一般用于更新,Post用户创建,delete用户删 ...
- Altair官方文档——HyperMesh模型管理
1.4 模型管理 在HyperMesh中创建一个有效的求解输入文件时,模型管理功能是非常必要的.本节将介绍基本的模型管理方法,如单元和载荷归类.集合组装.重命名.删除.排序以及重新编号等. 本节将学习 ...