Dcoekr 部署前后端分离项目SpringBoot +Vue

news2024/11/24 12:10:01
1.docker 部署vue

docker 安装 nginx的镜像

niginx 配置文件
nginx.conf
 
#user  nobody;
worker_processes  1;
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
 
    #access_log  logs/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;
 
    #gzip  on;
 
    server {
        listen       9090;
        server_name  localhost;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   html;
            index  index.html index.htm;
	try_files $uri $uri/ /index.html;
        }
 
        #error_page  404              /404.html;
 
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
        # 配置代理,解决跨域问题
        location ^~ /api/ {
            proxy_set_header Host $host;
            proxy_set_header  X-Real-IP        $remote_addr;
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header X-NginX-Proxy true;
            proxy_pass http://X.X.X.X:7777/;
        }
 
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
 
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
 
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
 
 
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
 
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
 
 
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;
 
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;
 
    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;
 
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;
 
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
 
}

docker 安装nginx ,并运行挂载主机

1.创建挂载目录
mkdir -p /home/nginx/conf
mkdir -p /home/nginx/log
mkdir -p /home/nginx/html
2.执行容器
# 生成容器
docker run --name= nginx -p 9001:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
3.挂载完成后删除重启
# 直接执行docker rm nginx或者以容器id方式关闭容器
# 找到nginx对应的容器id
docker ps -a
# 关闭该容器
docker stop nginx
# 删除该容器
docker rm nginx
 
# 删除正在运行的nginx容器
docker rm -f nginx
4.重启
docker run \
-p 9002:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest

启动后可以发现nginx容器是功能减少版的linux,其中丢失了vi等函数,所以只能通过挂载的形式,让宿主机影响容器.
在这里插入图片描述

配值dockerfile

# 基础镜像使用Nginx
FROM nginx
# 作者
MAINTAINER hou
# 添加时区环境变量,亚洲,上海
ENV TimeZone=Asia/Shanghai    
# 使用软连接,并且将时区配置覆盖/etc/timezone
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
# 将前端dist文件中的内容复制到nginx目录
COPY dist/  /etc/nginx/html/
# 覆盖镜像的Nginx配置
COPY nginx.conf /etc/nginx/nginx.conf

#输出完成
RUN echo 'echo init ok!!'
  1. 然后build 为镜像 docker build -f (当前路径)./xxdockerfile -t 镜像名 .

     docker build -f      ./Dockerfile -t  qianduanimage .
    
  2. docker run -id --name=project-vue -p 9876:9876 qianduanimage(镜像)

2.docker 部署springboot项目

1.需求:

​ 定义dockerfile,发布springboot 项目

实现步骤:
和你的后盾jar包同一目录新建Dockerfile

FROM java:8
MAINTAINER hou 
ADD springboot.jar  app.jar
CMD java -jar  app.jar
  1. 定义父镜像:FROM java:8
  2. 定义作者信息:MAINTAINER hou <www.crisp077.xyz>
  3. 将jar包添加到容器且重命名:ADD springboot.jar app.jar
  4. 定义容器启动执行的命令:CMD java -jar app.jar
  5. 通过dockerfile 构建镜像:docker build -f dockerfile文件路径 -t 镜像名称:版本 .(注意这里有个点)
  6. 构建
docker build -f   ./Dockerfile    -t  app .
  1. 运行
docker run -id --name=houuduan  -p 80:800   镜像名字

其中

  • -p 外接口:镜像接口 docker 这里指的是项目80端口 外映射到服务器

  • 80:映射到的外联端口

  • 800:镜像项目的端口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/461618.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

给大家分享一个比Top更好用的Linux进程管理工具htop

一、前言 相信用过Linux操作系统的同学对Top应该都不陌生&#xff0c;我们通过Top命令可以查看CPU的占用率以及每个进程的详细信息&#xff0c;但是今天我要给大家分享一个比Top更好用的进程管理工具htop&#xff08;High Top&#xff09;。 二、htop功能介绍 htop 是一个高…

Shell编程规范及变量

这里写目录标题 一、Shell脚本编程概述1.1 shell脚本的概念1.2Shell脚本应用场景1.3 shell的作用1.4 linux中有哪些shell 二、 shell脚本的使用2.1shell脚本的构成2.2 运行脚本2.3 重定向和管道操作2.31交互式硬件设备2.32 重定向操作2.33 管道符号 三、shell脚本变量3.1 shell…

【FPGA-DSP】第九期:音频信号处理

从本文开始将记录一些简单的音频信号处理算法在System Generator中的实现方法。本文将介绍如何搭建音频信号的采集与输出模型。 音频信号属于一维信号&#xff0c;一些基本概念如下&#xff1a; 采样频率&#xff1a;根据奈奎斯特采样定理&#xff0c;采样频率Fs应该不低于声…

Vite vue 使用cdn引入element-plus

vite-plugin-cdn-import&#xff1a;cdn的引入插件 npm i vite-plugin-cdn-import or pnpm i vite-plugin-cdn-import vite.config.js import AutoImport from unplugin-auto-import/viteexport default defineConfig({ plugins: [vue({reactivityTransform: true}),importT…

0401概述-最短路径-加权有向图-数据结构和算法(Java)

文章目录 1 最短路径2 最短路径的性质3 加权有向图的数据结构3.1 加权有向边3.2 加权有向图 4 最短路径4.1 最短路径API4.2 最短路径的数据结构4.3 边的松弛4.4 顶点的松弛 结语 1 最短路径 如图1-1所示&#xff0c;一幅加权有向图和其中的一条最短路径&#xff1a; 定义&…

事务—MySQL

文章目录 1.事务的四大特性1.1原子性1.2一致性1.3隔离性1.4持久性 2.并发访问中存在的一些问题2.1丢失更新2.2脏读2.3不可重复读2.4幻读 3.隔离级别解决一致性的问题3.1未提交读3.2提交读3.3可重复读3.4可串行化 4.不同隔离级别可以解决的问题 1.事务的四大特性 1.1原子性 事…

BBR原版/魔改/plus/锐速/七合一脚本linux加速脚本/硬盘挂载/cc防御/宝塔

BBR原版/魔改/plus/锐速七合一脚本linux加速脚本/硬盘挂载/CC防御/宝塔 新云分享的七合一脚本&#xff0c;包含原版BBR、魔改BBR、bbrplus以及锐速可选。 在vultr上Centos 7, Debian 8/9, Ubuntu 16/18测试通过&#xff0c;不支持ovz。 安装指令&#xff1a;复制下面命令在s…

Openswan安装和简单配置

Openswan安装和简单配置 安装环境&#xff1a; 操作系统&#xff1a;Ubuntu20.0.4TLS 用户权限&#xff1a;root下载Openswan: wget https://github.com/xelerance/Openswan/archive/refs/tags/v3.0.0.zip安装Openswan: 解压Openswan&#xff1a;&#xff08;PS&#xff1a…

[golang gin框架] 26.Gin 商城项目-前台自定义商品列表模板, 商品详情数据渲染,Markdown语法使用

一.前台自定义商品列表模板 当在首页分类点击进入分类商品列表页面时&#xff0c;可以根据后台分类中的分类模板跳转到对应的模板商品列表页面 1.管理后台商品分类模板设置如下图所示 2.代码展示 (1).商品控制器方法Category()完善 修改controllers/frontend/productController…

大模型竞逐,再造AI新格局

作者 | 辰纹 来源 | 洞见新研社 “面对AI时代&#xff0c;所有产品都值得用大模型重做一次。” 这是阿里巴巴集团董事会主席兼CEO、阿里云智能集团CEO张勇在2023阿里云峰会上对AIGC&#xff08;生成式AI&#xff09;进化的判断&#xff0c;在这背后则是由ChatGPT为起始点&…

Shiro学习笔记,一篇就够用了

目录 一、Shiro基础 1.1Shiro定义: 1.2Shiro架构: 1.3快速上手: 二、Spring整合Shiro 2.1导入spring整合shiro的依赖 2.2两个配置类 寻找maven版本号:Maven Repository: org.apache.shiro shiro-core (mvnrepository.com) Shiro官网:Apache Shiro | Simple. Java. Securi…

C. Trailing Loves (or L‘oeufs?)(求某个质因子在n的阶乘中的个数 + 思维)

Problem - C - Codeforces Aki喜欢数字&#xff0c;尤其是那些带有尾随零的数字。例如&#xff0c;数字9200有两个尾随零。Aki认为数字拥有的尾随零越多&#xff0c;它就越漂亮。 然而&#xff0c;Aki认为&#xff0c;一个数字拥有的尾随零的数量并不是固定的&#xff0c;而是…

微搭低代码调用第三方API

目录 1 创建项目2 获取实时天气API3 创建APIs4 小程序中调用总结 应粉丝要求&#xff0c;我们本篇介绍一下微搭中如何调用第三方API。我们的应用开发中比较常见的一类需求是开发一个天气的功能&#xff0c;方便用户访问应用的时候实时的看到今天最新的天气情况。 第三方的天气…

虚拟机安装使用经验

1 VMware 跟 VirtualBox 在网络上可以看到很多对比的资料&#xff0c;比如这篇: VirtualBox 和 VMware的区别 VMware 分商业版跟非商业版&#xff0c;我们这里仅讨论非商业版&#xff0c;也就是 VMware Workstation Player&#xff0c;支持在 Linux、Windows、Mac OS 等系统上…

docker容器:Docker consul的容器服务更新与发现

目录 一、Docker consul 1、什么是服务注册与发现 2、什么是consul 3、consul部署 ①实验目的 ②实验环境及拓扑 ③consul配置 ④registrator后端配置 ⑤测试发现功能是否正常 4、consul-template部署 ①准备template nginx模板文件 ②编译安装nginx ③安装templa…

LVS-keepalived

文章目录 一、keepalived1、KEEPALIVED作用2、KEEPALIVED原理3、KEEPALIVED工作模式4、KEEPLIVED问题及优化 二、实验1.LVSKeepalived 高可用群集 总结 一、keepalived 1、KEEPALIVED作用 保证负载均衡的高可用性&#xff0c;完美解决了LVS所有问题&#xff0c;可以检查后端服…

【随笔】转发/转向(服务器重定向,服务器转发,服务器跳转)和重定向(客户端重定向,客户端转发,客户端跳转)

文章目录 1.转发&#xff08;转向&#xff09;和重定向图解2.例子3.区别 1.转发&#xff08;转向&#xff09;和重定向图解 图&#xff1a;转发&#xff08;转向&#xff09; 图&#xff1a;重定向 2.例子 转发&#xff1a;A找B要钱&#xff0c;B没钱&#xff0c;于是B向C…

OSPF路由协议解释

目录 OSPF路由协议OSPF数据包类型OSPF邻区状态OSPF的邻接关系建立过程 路由名词解释OSPF开源项目 OSPF路由协议 OSPF简介 1、&#xff08;Open Shortest Path First&#xff09;&#xff0c;开放式最短路径优先&#xff0c;它属于链路状态路由协议&#xff0c;大部分路由将由O…

ChatGPT进化的过程简介

Chat GPT可以做什么&#xff1f; 分点列条的回答问题 写代码或SQL 翻译 语法检查 ChatGPT官方还未公开论文&#xff0c;ChatGPT有一个“孪生兄弟”InstructGPT&#xff0c;InstructGPT有论文&#xff0c;可以根据InstructGPT论文推导ChatGPT的训练过程&#xff1a; ChatGPT的…

React函数组件语法(N)

文章目录 react学习的说明新的官网全力投入现代React与Hooks React简介概述官网特点生态 React脚手架create-react-app官网创建和启动项目项目结构sass支持 Vite创建和启动项目项目结构常见配置 虚拟DOM什么是虚拟DOM虚拟DOM优缺点优点&#xff1a;缺点&#xff1a; 虚拟DOM实现…