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目录,每个人的配置可能都不一样,以下是我的配置文件

vue项目发布到docker nginx的方法总结vue项目发布到docker nginx的方法总结
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;
}

View Code

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所在的文件夹,使用以下命令创建镜像文件

bash;gutter:true; docker build -t 镜像名称:版本号</p> <pre><code> 5. 使用镜像文件创建并启动容器,其中8002是本机使用的端口号,80是容器的端口,执行完命令后可使用本地IP加端口号访问 </code></pre> <p>docker run --name=容器名称 -p 8002:80 -d 镜像名称:版本号</p> <pre><code> 二、通过命令行的方法发布,该方法稍微麻烦一点,如果只发布一次可以使用该方法,操作步骤如下 1.新建一个默认的nginxdocker,其中nginx是本地已有的nginx文件,如果没有要先创建 </code></pre> <p>docker run -id --name --restart=always -e TZ=Asia/Shanghai -d nginx -p 80:80 nginx</p> <pre><code> 2.创建目录 分别对应网站文件目录,日志目录,和配置文件目录 ![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif) </code></pre> <p>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</p> <pre><code> View Code 3.复制默认nginx默认配置文件到配置文件目录,其中 de3bd9fcb694 是默认nginxdocker的容器Id,可以通过dokcer ps查看 </code></pre> <p>docker cp de3bd9fcb694:/etc/nginx/nginx.conf /home/OnlineBusiness/nginx_test/conf docker cp de3bd9fcb694:/etc/nginx/conf.d /home/OnlineBusiness/nginx_test/</p> <pre><code> 4.停止默认配置nginx docker 其中 de3bd9fcb694 是默认nginxdocker的容器Id </code></pre> <p>docker stop de3bd9fcb694</p> <pre><code> 5.删除默认配置 其中 de3bd9fcb694 是默认nginxdocker的容器Id </code></pre> <p>docker rm de3bd9fcb694</p> <pre><code> 6.将发布后的vue项目上传到创建的网站文件目录,修改配置文件,如果有默认的配置文件,前面1,3,4,5步可以不需要,直接将配置文件复制到配置文件夹中即可 7.重新创建容器,并且指定容器的文件目录,日志目录、配置文件目录与本地的目录映射,映射后如果修改了本地对应目录的文件,重启容器后会同步过去 </code></pre> <p>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</p> <pre><code> 8.启动容器 shoppc为容器名称,也可以使用Id </code></pre> <p>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)

以上方法和步骤都经过亲自动手实践是可以走得通的,在此记录下来,以免以后不记得了

Original: https://www.cnblogs.com/ithome8/p/16665509.html
Author: IT之家
Title: vue项目发布到docker nginx的方法总结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/591806/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL日志

    一、错误日志 错误日志是MySQL中最重要的日志之一,它记录了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时…

    数据库 2023年5月24日
    093
  • 博客园美化-随季节变化实现不同的飘落效果

    最近在研究博客园的美化效果,看到有一个樱花飘落的效果,忽然突发奇想,如果能根据当前日期所处的季节实现不同的飘落效果岂不是更酷。😂 最近在研究博客园的美化效果,看到有一个樱花飘落的效…

    数据库 2023年6月6日
    097
  • 并发编程学习

    Semaphore Semaphore 可以允许多个线程访问一个临界区。 应用:实现线程池 CountDownLatch 应用: 业务原始状态:一个线程执行查询订单,查询派送单,对…

    数据库 2023年6月16日
    090
  • Hosts映射

    Hosts映射 思考:如何通过主机名能够找到(ping)某个linux系统? 前言 Hosts:是一个文本文件,用来记录IP和Hostname的映射关系 DNS:是互联网上作为域名…

    数据库 2023年6月11日
    086
  • 彻底解决SLF4J的日志冲突的问题

    今天公司同事上线时发现,有的机器打印了日志,而有的机器则一条日志也没有打。以往都是没有问题的。 因此猜测是这次开发间接引入新的日志jar包,日志冲突导致未打印。 排查代码发现,系统…

    数据库 2023年6月6日
    0215
  • 在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools

    搭建3台MySQL服务器,完成主从复制,搭建一台amoeba服务器,完成MySQL的读写分离 问题描述: 问题1、 在服务搭建完毕后,利用客户机连接amoeba服务器登录数据库,无…

    数据库 2023年6月14日
    0144
  • 网卡限速工具之WonderShaper

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 什么是WonderShaper …

    数据库 2023年5月24日
    081
  • 弱隔离级别 & 事务并发问题

    为什么要有弱隔离级别 如果两个事务操作的是不同的数据, 即不存在数据依赖关系, 则它们可以安全地并行执行。但是当出现某个事务修改数据而另一个事务同时要读取该数据, 或者两个事务同时…

    数据库 2023年6月11日
    069
  • 做数据时代的加油站,ShardingSphere 为易车数据库架构演进提供新动力

    Apache ShardingSphere 前段时间应邀来到易车北京总部,PMC Chair 张亮与易车的技术同学在数据加解密、扩容、迁移、上云等话题展开了深度交流与探讨。 作为中…

    数据库 2023年6月16日
    0223
  • 设计模式之(3)——抽象工厂方法模式

    定义:抽象工厂模式简单地讲,就是提供一个超级工厂,围绕这个超级工厂创建其他工厂;抽象工厂模式提供一个创建一些列相关或者相互依赖对象的接口; 在此之前我们先来讲一下产品等级和产品族的…

    数据库 2023年6月14日
    068
  • 3000帧动画图解MySQL为什么需要binlog、redo log和undo log

    全文建立在MySQL的存储引擎为InnoDB的基础上 先看一条SQL如何入库的: 这是一条很简单的更新SQL,从MySQL服务端接收到SQL到落盘,先后经过了MySQL Serve…

    数据库 2023年6月16日
    0110
  • zabbix自定义监控(mysql主从状态和延迟)

    zabbix自定义监控 需要先配置mysql主从,从库上需要安装zabbix_agentdzabbix_server配置zabbix_agentd配置mysql主从配置 监控mys…

    数据库 2023年6月14日
    074
  • MySQL 数据库自动备份

    压缩文件恢复 gzip -d backup.sql.gz | mysql -h -u -p Tips: gzip -d为解压, 下面介绍下gzip用法与参数介绍(gzip命令只是压…

    数据库 2023年5月24日
    060
  • Typora + PicGo + Gitee 解放你对图片的管理

    计算机环境准备 Typora PicGo nodejs Typora官网: https://typora.io/ PicGo官网: https://picgo.github.io/…

    数据库 2023年6月9日
    072
  • DRF使用缓存

    在做项目的时候,有时很多数据都是经常被访问的而且数据是基本不变的,比如省市区的数据是经常被用户查询使用的,而且数据基本不变化,所以我们可以将省市区数据进行缓存处理,减少数据库的查询…

    数据库 2023年6月14日
    062
  • 索引的树结构

    二分查找 二叉树 二叉平衡树 B-TREE :二叉平衡树的基础上,使加载一次节点,可以加载更多路径数据,同时把查询范围缩减到更小 缺点:业务数据的大小可能远远超过了索引数据的大小,…

    数据库 2023年5月24日
    061
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球