Dockerfile, nginx.conf文件解读

Dockerfile文件

FROM registry.tongdun.me/library/alpine3-nginx:1.0
ENV APPNAME=edith-frontendADD nginx.conf /etc/nginx/
ADD ok.htm /home/admin/
RUN mkdir /home/admin/dist
COPY /dist/ /home/admin/dist/
RUN mkdir /home/admin/nginx
RUN mkdir /home/admin/nginx/conf
RUN mkdir /home/admin/$APPNAME
ADD validate.sh /home/admin/$APPNAME
RUN mkdir /home/admin/output
RUN mkdir /home/admin/output/$APPNAME
RUN mkdir /home/admin/output/$APPNAME/logsCMD ["/bin/bash", "-c", "nginx"]

文件解读

# FROM:用来制定基础镜像的关键字。
# ENV: 指令用于设置环境变量
# ADD:向镜像中添加文件或目录
# RUN: 在构建镜像过程中执行命令
# COPY: 可以将本地文件或目录复制到镜像中,使得容器在运行时可以直接使用这些文件。
# CMD:容器启动# 这条指令告诉Docker在构建镜像时,使用名为:alpine3-nginx:1.0的基础镜像。
FROM registry.tongdun.me/library/alpine3-nginx:1.0# 设置一个名为 "APPNAME" 的环境变量,其值为 "edith-frontend"。通过这个指令,可以在 Docker 容器内部使用 "$APPNAME" 来引用这个环境变量的取值。
ENV APPNAME=edith-frontend# 将名为 "nginx.conf" 的文件添加到 Docker 镜像中的 "/etc/nginx/" 目录下。这样做可以将本地的 nginx 配置文件复制到镜像中指定的位置,以便在容器启动时使用该配置文件。
ADD nginx.conf /etc/nginx/
ADD ok.htm /home/admin/# 表示在 Docker 镜像中执行命令,创建一个名为 "dist" 的目录,并将其放置在 "/home/admin/" 目录下。这个命令会在构建 Docker 镜像时执行,确保镜像中包含指定的目录结构。
RUN mkdir /home/admin/dist# 表示将本地的 "dist" 目录中的内容复制到 Docker 镜像中的 "/home/admin/dist/" 目录下。这样做可以将本地构建好的静态文件或应用程序文件复制到镜像中,以便在容器启动时使用。
COPY /dist/ /home/admin/dist/RUN mkdir /home/admin/nginx
RUN mkdir /home/admin/nginx/conf
RUN mkdir /home/admin/$APPNAME
RUN mkdir /home/admin/output
RUN mkdir /home/admin/output/$APPNAME
RUN mkdir /home/admin/output/$APPNAME/logs# 启动nginx
CMD ["/bin/bash", "-c", "nginx"]

nginx.conf

user  root;
worker_processes  4;error_log  /home/admin/output/edith-frontend/logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;pid        /home/admin/output/edith-frontend/logs/nginx.pid;events {worker_connections  1024;
}
daemon          off;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  /home/admin/output/edith-frontend/logs/access.log;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;client_max_body_size 1900M;client_body_buffer_size 128k;#gzip  on;gzip  on;gzip_min_length 5k;gzip_buffers 4 16k;gzip_http_version 1.0;gzip_comp_level 3;gzip_types text/plain application/javascript application/css  text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;gzip_vary on;gzip_disable "MSIE [1-6]\.";# 在configMap 里面配置 对应的服务器IPinclude /home/admin/nginx/conf/*.conf;server {# 静态资源根路径变量set $root /home/admin;listen 8088;server_name localhost;charset utf-8;# 静态资源根路径,(后面相关前端静态资源都放单该路径下)root /home/admin;location / {root /home/admin/dist;index index.html;try_files $uri /index.html;}location /api {proxy_pass http://backend;}# location ^~ /bridgeApi {#   proxy_set_header X-Forwarded-For $remote_addr;#   proxy_pass http://bifrostApi/api;# }client_max_body_size 4096M;client_header_timeout 900s;client_body_timeout 900s;proxy_connect_timeout 900s;proxy_send_timeout 900s;proxy_read_timeout 900s;keepalive_timeout  900s;}
}

nginx.conf解读

# 将用户设置为 root
user  root;# Nginx 启动时的 worker 进程数量
worker_processes  4;# 记录错误日志的路径和文件名
error_log  /home/admin/output/edith-frontend/logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;# 将 Nginx 主进程的 PID 写入到指定路径下的 nginx.pid 文件中。
pid        /home/admin/output/edith-frontend/logs/nginx.pid;# nginx的事件模块
events {# 每个 worker 进程允许的最大并发连接数为 1024。worker_connections  1024;
}# "daemon off;",可以让 Nginx 在前台运行,方便查看实时日志和处理错误信息,
# 适用于一些特殊的调试和测试场景。
daemon          off;# 用来配置 HTTP 服务器的主要部分。在这个模块中,你可以配置nginx处理http请求的各种参数,包括虚拟机,路由,缓存,日志记录等等。
# server:定义http服务器的虚拟主机,包括监听的端口,域名和请求的处理规则。
# location: 定义url路由的匹配规则和对应的处理方式。
# upstream:定义后端服务器的集群,用于负载均衡和反向代理。
# log_format:定义访问日志的格式。
# access_log/error_log:配置访问日志和错误日志的记录方式。http {# includes 引入额外的配置文件include       mime.types;# default_type: 用于设置默认的 MIME 类型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  /home/admin/output/edith-frontend/logs/access.log;# 在 Nginx 配置中,"sendfile on" 是用来开启或关闭文件传输优化的指令。# 当设置为 "on" 时,Nginx 在合适的情况下将使用操作系统提供的高效文件传输机制来直接传输文件,# 而不是将文件内容拷贝到用户空间再传输。这样可以提高文件传输的效率和性能。sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;client_max_body_size 1900M;client_body_buffer_size 128k;#gzip  on;gzip  on;gzip_min_length 5k;gzip_buffers 4 16k;gzip_http_version 1.0;gzip_comp_level 3;gzip_types text/plain application/javascript application/css  text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;gzip_vary on;gzip_disable "MSIE [1-6]\.";# 在configMap 里面配置 对应的服务器IPinclude /home/admin/nginx/conf/*.conf;server {# 静态资源根路径变量# 将$root 的变量设置为 /home/adminset $root /home/admin;listen 8088;# 域名server_name localhost;charset utf-8;# 静态资源根路径,(后面相关前端静态资源都放单该路径下)root /home/admin;location / {root /home/admin/dist;index index.html;try_files $uri /index.html;}location /api {proxy_pass http://backend;}# location ^~ /bridgeApi {#   proxy_set_header X-Forwarded-For $remote_addr;#   proxy_pass http://bifrostApi/api;# }client_max_body_size 4096M;client_header_timeout 900s;client_body_timeout 900s;proxy_connect_timeout 900s;proxy_send_timeout 900s;proxy_read_timeout 900s;keepalive_timeout  900s;}
}

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

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

相关文章

水电站泄洪预警广播系统方案

一、行业背景 近年来由于危险河道管理措施不到位,调峰电站泄水风险长期存在,信息通报制度缺失以及民众安全警觉性不高等因素导致的水电站在泄洪时冲走下游河道游客以及人民财产的事故频发。 我司通过物联网、云计算、大数据、人工智能等技术手段&#x…

【电脑装机】笔记本开机启动快捷键汇总

联想 Lenovo 和 ThinkPad 笔记本: 启动项界面快捷键:F12 或者 F2 进 BIOS 快捷键:F2 或者 FnF2 戴尔 Dell 笔记本: 启动项界面快捷键:F12 进 BIOS 快捷键:F2 或者 FnF2 惠普 HP 笔记本: 启…

不能从所选图层建立3d模型--模大狮模型网

在Revit中,从所选图层直接创建3D模型并不是一个常规的操作方式。通常情况下,你需要手动创建文字或者图形,然后将其转换为3D模型。 如果你有一个平面上的文字或图形,想要将其转换为3D模型,你可以使用以下步骤&#xff1…

什么是虚拟线程?

1、典型回答 Java 中的虚拟线程,也叫做协程或“轻量级线程”,它诞生于JDK 19(预览 API),正式发布于 JDK 21,它是一种在 Java 虚拟机(JVM)层面实现的逻辑线程,不直接和操作系统的物理线程一一对应,因此它可…

文献速递:基于SAM的医学图像分割---SAM-Med2D

Title 题目 SAM-Med2D 01 文献速递介绍 医学图像分割在通过识别和勾画各种组织、器官或感兴趣区域来分析医学图像中发挥着至关重要的作用。准确的分割可以帮助医生精确识别和定位病理区域,从而实现更准确的诊断和治疗。此外,对医学图像进行定量和定性…

Node.js之沙盒专题

​ Node.js一直是薄弱项,今天特意整理一下,基本上是各个大佬写的大杂烩,仅用于学习记录~~~ 1. child_process 首先介绍一下nodejs中用来执行系统命令的模块child_process。Nodejs通过使用child_process模块来生成多个子进程来处理其他事物…

简化业务流程,AppLink连接一定签

APPlink是什么 APPlink是RestCloud打造的一款简单易用的零代码自动化集成平台,为业务流程提供自动化的解决方案,将企业内部的核心系统以及第三方应用程序和云服务等进行集成。无论是开发人员还是业务人员,都可以使用APPlink轻松构建出高效、…

【触想智能】工业触摸一体机九大常见故障检测方法分享

工业触摸一体机目前在社会生产中应用非常广泛,比如智能化的生产车间、城市智慧安防监控中心都经常用到工业触摸一体机。 电子产品在使用中难免会出现一些故障,工业触摸一体机也不例外。那么我们在使用工业触摸一体机的时遇到问题怎么办呢?下面小编给大家…

Python从入门到精通秘籍十九

一、Python之union 联合类型注释 当谈论Python中的联合类型注释时,通常会提到Union类型。Union是typing模块中定义的一个泛型类,用于表示多个可能的类型。 Union的语法如下: Union[type1, type2, ...]其中type1, type2, … 是要组成联合类…

第十九章 linux部署scrapyd

文章目录 1. linux部署python环境1. 部署python源文件环境2. 下载python3. 解压安装包4. 安装5. 配置环境变量6. 检查是否安装成功7. 准备python使用的包8. 安装scrapyd9. 配置scrapyd10. 开放6800端口 2. 部署gerapy1. 本机下载包2. 初始化3. 进入gerapy同步数据库4. 创建用户…

类。。。。。。

类的访问权限 类的成员有三种访问权限:public、private 和 protected,分别表示公有的、私有的和受保护的。 在类的内部(类的成员函数中),无论成员被声明为 public 还是 private,都是可以访问。 在类的外…

nginx启停操作

一、nginx启动 方式一: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf方式二: systemctl start nginx 查看进程启动状态 ps -ef | grep nginx 上图表示nginx进程启动成功,进程号为30034为主进程(负责链接操作)&am…

2024/3/24--爬虫库

1.常用的爬虫库 (1)在setting的project里面点击Python Interpreter (2)常用的爬虫库有 import requests //用途:用于发送HTTP请求。from bs4 import BeautifulSoup //用于从HTML或XML文档中提取数据。import scrapy //一个功能强大的爬虫框架&#xf…

基于 C++ STL 的图书管理系统213行

定制魏:QTWZPW,获取更多源码等 目录 一、实践项目名称 二、实践目的 三、实践要求 四、实践内容 五、代码框架参考 六、代码效果展示 七、完整代码主函数展示 一、实践项目名称 基于 C STL 的图书管理系统 二、实践目的 通过设计和实现一个基于…

AI之Suno:Suno V3的简介、安装和使用方法、案例应用之详细攻略

AI之Suno:Suno V3的简介、安装和使用方法、案例应用之详细攻略 目录 Suno AI的简介 1、特点与改进: Suno AI的安装和使用方法 1、第一步,让国产大模型—ChatGLM4帮我写一个提示词 2、第二步,将提示词交给Suno v3,…

优秀学员作品:SpringBoot茶叶商城系统源码+运行教程+开发文档(参考论文)

今天发布的是由【猿来入此】的优秀学员独立做的一个基于springboot脚手架的茶叶商城系统,主要实现了茶叶采购,出售茶叶的流程,除基础脚手架外,实现的功能有: 前台 : 首页、商品列表、新闻列表、个人中心、…

python把图片重命名

在Python中,你可以使用os模块来重命名文件,包括图片文件。以下是一个简单的示例,该示例会将指定目录中的所有.jpg图片文件重命名为new_name_1.jpg,new_name_2.jpg,以此类推: import os# 指定图片所在的目录…

【算法】双指针的应用

文章目录 前言1. 移动零(easy)2. 复写零(easy)3. 快乐数(medium)4. 盛水最多的容器(medium)5. 有效三角形的个数(medium)6.和为 s 的两个数字(eas…

计算机网络:传输控制协议(Transmission Control Protocol-TCP协议

计算机网络:传输控制协议(Transmission Control Protocol-TCP协议) 本文目的前置知识点TCP协议简介主要特性通信流程1. 建立连接的过程(三次握手,243)1.1 为什么要三次握手,两次不行吗? 2. 释放连接的过程(…

msvcp110.dll丢失修复办法

在计算机使用过程中,我们经常会遇到一些扩展名为.dll的文件,这些文件是动态链接库文件,用于提供程序运行时所需的函数和资源。其中,msvcp110.dll文件是一个非常重要的动态链接库文件,它属于Microsoft Visual C 2012 Re…