当前位置: 首页 > news >正文

Docker 使用 Dockerfile 文件打包部署前端项目

  1. 编写 Dockerfile 文件:
FROM nginx:latest
ADD dist /etc/nginx/html/dist
COPY nginx.conf /etc/nginx/nginx.conf
ENV PATH /usr/sbin:$PATH
EXPOSE 80
ENTRYPOINT ["nginx"]
CMD ["-g","daemon off;"]
  1. 编写 nginx.conf 文件:
user  root;
worker_processes  auto;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        off;tcp_nopush     on;server_tokens   off;keepalive_timeout  65;client_max_body_size 1000m;client_header_buffer_size 512k;large_client_header_buffers 4 512k;server {listen       80;server_name  localhost;gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_comp_level 6;gzip_vary on;gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;#charset koi8-r;#access_log  logs/host.access.log  main;location / {add_header X-Frame-Options "SAMEORIGIN";add_header Cache-Control "no-cache";root    html/dist;index   index.html;try_files $uri $uri/ /index.html;}location /new/oliver/ {            proxy_pass http://127.0.0.1:9090;rewrite "^/new/(.*)$" /$1 break;}location /oliver/ {proxy_http_version 1.1;proxy_pass http://172.30.10.141:11213;#proxy_pass_request_headers on;#proxy_set_header Host $http_host;#proxy_set_header Connection "";client_max_body_size    1024m;client_body_buffer_size 128k;proxy_redirect off;proxy_connect_timeout   900;proxy_send_timeout      900;proxy_read_timeout      900;proxy_buffer_size       4k;proxy_buffers           4 32k;proxy_busy_buffers_size 64k;proxy_temp_file_write_size 64k;proxy_next_upstream http_502 http_504 error invalid_header;}location /zhong/ {proxy_pass http://api.oliver.com;proxy_http_version 1.1;proxy_set_header Connection "";rewrite "^/zhong/(.*)$" /$1 break;}location /tyler/ {            proxy_pass http://192.168.56.200:8999;rewrite "^/tyler/(.*)$" /$1 break;}location /ai {            proxy_pass https://tylerzhong.ai.com;}}
}
  1. 将 Dockerfile 打成镜像
docker build -t tylerApp:latest .
  1. 运行 tylerApp 镜像
docker run -id --name tylerApp -p 80:80 tylerApp
  1. 浏览器访问项目

http://ip:port/


扩展:

如果要将打包好的镜像发送给别人,让别人部署,则可以将镜像打成 tar 包,然后将 tar 包发送给别人。

docker save -o tylerApp.tar tylerApp

由于 Docker 镜像文件可能比较大,可以将 .tar 文件进行压缩以减少文件大小,便于发送。可以使用 tar 或 zip 等工具压缩:

tar -czvf tylerApp.tar.gz tylerApp.tar

或者使用 zip:

zip tylerApp.tar.gz tylerApp.tar

对方收到镜像文件后,需执行以下命令来加载 Docker 镜像:

docker load -i tylerApp.tar.gz

如果是压缩文件,需要先解压:

tar -xzvf tylerApp.tar.gz
docker load -i tylerApp.tar

相关文章:

Docker 使用 Dockerfile 文件打包部署前端项目

编写 Dockerfile 文件: FROM nginx:latest ADD dist /etc/nginx/html/dist COPY nginx.conf /etc/nginx/nginx.conf ENV PATH /usr/sbin:$PATH EXPOSE 80 ENTRYPOINT ["nginx"] CMD ["-g","daemon off;"]编写 nginx.conf 文件&#…...

HTML-全

. CSS css后缀名的文件被html引用 在HTML中,CSS(层叠样式表,Cascading Style Sheets)是一种用于设置网页上的文本内容、图片布局和版面设计等外观样式的样式表语言。简单来说,CSS定义了HTML元素如何显示在浏览器中。…...

高效流程图绘制:开发设计流程图利器

在选择画流程图的工具时,不同的项目和使用场景会决定最佳的工具。以下是几款常见的流程图工具,并结合具体项目使用场景提供建议: 1. Lucidchart 特点: 在线协作:支持多人实时协作,适合团队合作。模板丰富&…...

数据仓库的概念

先用大白话讲一下,数据仓库的主要目的就是存储和分析大量结构化数据的。 > 那么它的核心目的是:支持商业智能(BI)和决策支持系统,也就是说,它不仅仅是为了存储,更重要的是为了分析提供便利。…...

AI - 谈谈RAG中的查询分析(2)

AI - 谈谈RAG中的查询分析(2) 大家好,RAG中的查询分析是比较有趣的一个点,内容丰富,并不是一句话能聊的清楚的。今天接着上一篇,继续探讨RAG中的查询分析,并在功能层面和代码层面持续改进。 功…...

Java基础面试题,46道Java基础八股文(4.8万字,30+手绘图)

Java是一种广泛使用的编程语言,由Sun Microsystems(现为Oracle Corporation的一部分)在1995年首次发布。它是一种面向对象的语言,这意味着它支持通过类和对象的概念来构造程序。 Java设计有一个核心理念:“编写一次&am…...

taro小程序马甲包插件

插件名 maloulab/taro-plugins-socksuppet-ci maloulab/taro-plugins-socksuppet-ci安装 yarn add maloulab/taro-plugins-socksuppet-ci or npm i maloulab/taro-plugins-socksuppet-ci插件描述 taro官方是提供了小程序集成插件的tarojs/plugin-mini-ci ,且支持…...

【分组去重】.NET开源 ORM 框架 SqlSugar 系列

💥 .NET开源 ORM 框架 SqlSugar 系列 🎉🎉🎉 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列…...

2020年

C D A C B B A B C B A 42...

基于Matlab卡尔曼滤波的GPS/INS集成导航系统研究与实现

随着智能交通和无人驾驶技术的迅猛发展,精确可靠的导航系统已成为提升车辆定位精度与安全性的重要技术。全球定位系统(GPS)和惯性导航系统(INS)在导航应用中各具优势:GPS提供全球定位信息,而INS…...

《只狼》运行时提示“mfc140u.dll文件缺失”是什么原因?“找不到mfc140u.dll文件”要怎么解决?教你几招轻松搞定

《只狼》运行时提示“mfc140u.dll文件缺失”的科普与解决方案 作为一名软件开发从业者,在游戏开发和维护过程中,我们经常会遇到各种运行时错误和系统报错。今天,我们就来探讨一下《只狼》这款游戏在运行时提示“mfc140u.dll文件缺失”的原因…...

C语言:指针与数组

一、. 数组名的理解 int arr[5] { 0,1,2,3,4 }; int* p &arr[0]; 在之前我们知道要取一个数组的首元素地址就可以使用&arr[0],但其实数组名本身就是地址,而且是数组首元素的地址。在下图中我们就通过测试看出,结果确实如此。 可是…...

win11无法检测到其他显示器-NVIDIA

https://www.nvidia.cn/software/nvidia-app/ https://cn.download.nvidia.cn/nvapp/client/11.0.1.163/NVIDIA_app_v11.0.1.163.exe 下载安装后,检测驱动、更新驱动。...

SQLite:DDL(数据定义语言)的基本用法

SQLite:DDL(数据定义语言)的基本用法 1 主要内容说明2 相关内容说明2.1 创建表格(create table)2.1.1 SQLite常见的数据类型2.1.1.1 integer(整型)2.1.1.2 text(文本型)2…...

AI工具集:一站式1000+人工智能工具导航站

在当今数字化时代,人工智能(AI)技术的飞速发展催生了众多实用的AI工具,但面对如此多的选择,想要找到适合自己的高质量AI工具却并非易事。网络搜索往往充斥着推广内容,真正有价值的信息被淹没其中。为了解决…...

视觉处理基础2

目录 1.池化层 1.1 概述 1.2 池化层计算 1.3 步长Stride 1.4 边缘填充Padding 1.5 多通道池化计算 1.6 池化层的作用 2. 卷积拓展 2.1 二维卷积 2.1.1 单通道版本 2.1.2 多通道版本 2.2 三维卷积 2.3 反卷积 2.4 空洞卷积(膨胀卷积) 2.5 …...

代码随想录第十四天|二叉树part02--226.翻转二叉树、101.对称二叉树、104.二叉树的最大深度、111.二叉树的最小深度

资料引用: 226.翻转二叉树(226.翻转二叉树) 101.对称二叉树(101.对称二叉树) 104.二叉树的最大深度(104.二叉树的最大深度) 111.二叉树的最小深度(111.二叉树的最小深度)…...

vue基础之7:天气案例、监视属性、深度监视、监视属性(简写)

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…...

JS实现高效导航——A*寻路算法+导航图简化法

一、如何实现两点间路径导航 导航实现的通用步骤,一般是: 1、网格划分 将地图划分为网格,即例如地图是一张图片,其像素为1000*1000,那我们将此图片划分为各个10*10的网格,从而提高寻路算法的计算量。 2、标…...

Spring Authorization Server登出说明与实践

本章内容概览 Spring Security提供的/logout登出接口做了什么与如何自定义。Spring Authorization Server提供的/connect/logout登出接口做了什么与如何自定义。Spring Authorization Server提供的/oauth2/revoke撤销token接口做了什么与如何自定义。 前言 既然系统中有登录功…...

STM32外设驱动:内存映射与寄存器操作详解

1. STM32外设驱动基础:内存映射与寄存器操作在嵌入式开发领域,STM32系列单片机因其出色的性能和丰富的外设资源而广受欢迎。要真正掌握STM32的开发,理解其底层外设驱动机制至关重要。让我们从一个工程师的视角,深入剖析STM32外设驱…...

高效智能激活解决方案:KMS_VL_ALL_AIO如何一键解决Windows与Office授权难题

高效智能激活解决方案:KMS_VL_ALL_AIO如何一键解决Windows与Office授权难题 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否曾因Windows突然弹出激活提醒而中断工作&#xff1…...

高温车间降温妙招:蒸发冷省电空调成关键词解决方案

在高温车间工作,闷热的环境不仅影响员工的工作效率,还可能对身体健康造成威胁。因此,为高温车间找到合适的降温方案至关重要。而蒸发冷省电空调,正是解决这一难题的理想选择。蒸发冷省电空调采用先进的制冷技术,通过压…...

国产AI编程越级Claude,Qwen3.6-Plus发布:你该知道的3件事

国产AI,在代码这件事上,赢了阿里4月2日发布了Qwen3.6-Plus,新一代大模型。在最权威的编程评测(SWE-bench Verified)里,它的表现超越了Claude 3.7 Sonnet——2倍,甚至3倍。不是"接近"&…...

新手友好:借助快马平台的免费token轻松迈出AI应用开发第一步

作为一名刚接触AI开发的新手,我最近在InsCode(快马)平台上完成了一个文本摘要生成器的项目,整个过程非常顺畅。这个平台对初学者特别友好,尤其是提供了免费token,让我们可以零成本体验AI开发的乐趣。 理解token的概念 刚开始我对…...

终极GoogleTest死亡测试指南:如何轻松掌握程序异常退出测试技巧

终极GoogleTest死亡测试指南:如何轻松掌握程序异常退出测试技巧 【免费下载链接】googletest GoogleTest - Google Testing and Mocking Framework 项目地址: https://gitcode.com/GitHub_Trending/go/googletest GoogleTest(Google Testing and …...

Qwen2.5-VL-7B-Instruct-GPTQ入门指南:用vLLM+Chainlit轻松玩转多模态AI

Qwen2.5-VL-7B-Instruct-GPTQ入门指南:用vLLMChainlit轻松玩转多模态AI 1. 快速了解Qwen2.5-VL-7B-Instruct-GPTQ Qwen2.5-VL-7B-Instruct-GPTQ是一款基于Qwen2.5-VL-7B-Instruct模型的4bit量化版本,专门用于图文对话任务。这个模型通过AngelSlim技术进…...

ComfyUI 自动化生产 3D资产 工作流笔记

ComfyUI 自动化生产 3D资产 工作流笔记 概念与初衷: 针对个人开发者,实现 AI 转 高质量3D资产的 积分限制,次数限制,降低生成成本。 零、工具网站: 1、HugginFace (模型下载站) 2、魔搭社区 …...

GModPatchTool终极指南:3步解决Garry‘s Mod启动失败与浏览器问题

GModPatchTool终极指南:3步解决Garrys Mod启动失败与浏览器问题 【免费下载链接】GModPatchTool 🇬🩹🛠 Patches for Garrys Mod. Updates/Improves CEF and Fixes common launch/performance issues (esp. on Linux/Proton/macOS…...

告别PWM!用STM32串口轻松驱动幻尔16路舵机控制板(附完整代码)

STM32串口驱动幻尔16路舵机控制板的实战指南 从PWM到串口:舵机控制的技术演进 记得我第一次尝试用STM32控制机械臂时,光是配置PWM定时器就花了两天时间。每个舵机需要独立的PWM通道,复杂的定时器分频计算,还有那令人头疼的占空比换…...