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

【docker-compose】【nginx】动态配置

需求:部署前端镜像时需要动态修改nginx反向代理的后端服务的ip地址

  1. 原.conf配置调整,改为嵌入变量的文件模版
  2. Dockerfile 修改,通过envsubst将换将变量注入模版后再运行nginx
  3. docker-compose配置,通过environment动态修改变量

default.conf.tmplate(原default.conf)

动态变量:${MY_IP}

server {listen       80;server_name  localhost;location / {root   /usr/share/nginx/html;try_files $uri /index.html;}location /api{proxy_pass http://${MY_IP}:18892;}}

Dockerfile

如果有多个变量可用逗号隔开,envsubst '$MY_IP,$MY_PORT'

FROM nginx:1.20.2-alpineCOPY dist /usr/share/nginx/htmlCOPY nginx.conf /etc/nginx/nginx.conf
# 拷贝模板
COPY default.conf.tmplate  /etc/nginx/conf.d
# 切换目录
WORKDIR /etc/nginx/conf.d
# 将环境变量注入模版
ENTRYPOINT envsubst '$MY_IP'  < default.conf.tmplate > default.conf && cat default.conf && nginx -g 'daemon off;'EXPOSE 80

docker-compose.yml

注意environment下的变量名称MY_IP要与上述对应

environment:- MY_IP=server2

yml完整配置示例:
通过同一套镜像部署两个web项目,后端对应不同的数据库,前端对应不同的后端

version: '2'
networks:myapp:driver: bridge
services:server1:image: [ip]:5000/servercontainer_name: server1restart: alwaysenvironment:- spring.datasource.url=jdbc:mysql://[ip]:3306/dbs1?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=CTT- JAVA_OPTS=-Dlog4j2.formatMsgNoLookups=truenetworks:- myappfront1:image: [ip]:5000/frontcontainer_name: front1restart: alwaysenvironment:- MY_IP=server1depends_on:- server1links:- server1ports:- "8095:80"networks:- myappserver2:image: [ip]:5000/servercontainer_name: server2restart: alwaysenvironment:- spring.datasource.url=jdbc:mysql://[ip]:3306/dbs2?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=CTT- JAVA_OPTS=-Dlog4j2.formatMsgNoLookups=truenetworks:- myappfront2:image: 10.1.58.6:5000/frontcontainer_name: front2restart: alwaysenvironment:- MY_IP=server2depends_on:- server2links:- server2ports:- "8096:80"networks:- myapp

相关文章:

【docker-compose】【nginx】动态配置

需求&#xff1a;部署前端镜像时需要动态修改nginx反向代理的后端服务的ip地址 原.conf配置调整&#xff0c;改为嵌入变量的文件模版Dockerfile 修改&#xff0c;通过envsubst将换将变量注入模版后再运行nginxdocker-compose配置&#xff0c;通过environment动态修改变量 defau…...

ExpressLRS开源之接收机固件编译烧录步骤

ExpressLRS开源之接收机固件编译烧录步骤 1. 源由2. 编译步骤2.1 推荐源代码指定方案2.2 方法一&#xff1a;ELRS Configurator步骤一&#xff1a;下载ELRS Configurator工具步骤二&#xff1a;安装ELRS Configurator工具步骤三&#xff1a;使用ELRS Configurator工具进行配置步…...

提取视频文件里的音频和无声视频

一、提取视频文件里的音频&#xff1a; public static void generateMediaRadio(){// 视频提取器MediaExtractor extractor new MediaExtractor();try {//本地视频文件extractor.setDataSource("/storage/emulated/0/mjyyfep/alpha.mp4");//网络视频文件 // …...

SpringBoot原理

一、Bean原理 1、配置文件的优先级 SpringBoot项目当中支持的三类配置文件&#xff1a; ​ - application.properties - application.yml - application.yaml 配置文件优先级排名&#xff08;从高到低&#xff09;&#xff1a; 1. properties配置文件 2. yml配置文件 3. yaml…...

MySQL事务原理、MVCC详解

事务原理 1 事务基础 1). 事务 事务 是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系 统提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 2). 特性 原子性&#xff08;Atomi…...

在Windows操作系统上安装Neo4j数据库

在Windows操作系统上安装Neo4j数据库 一、在Windows操作系统上安装Neo4j数据库 一、在Windows操作系统上安装Neo4j数据库 点击 MySQL可跳转至MySQL的官方下载地址。 在VUE3项目的工程目录中&#xff0c;通过以下命令可生成node_modules文件夹。 npm install&#xff08;1&am…...

国民八路参考文献:[8]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑工业出版社,2022.

国民八路参考文献&#xff1a;&#xff3b;&#xff18;&#xff3d;许少辉&#xff0e;乡村振兴战略下传统村落文化旅游设计&#xff3b;&#xff2d;&#xff3d;北京&#xff1a;中国建筑工业出版社&#xff0c;&#xff12;&#xff10;&#xff12;&#xff12;&#xff0…...

24 Linux高级篇-备份与恢复

24 Linux高级篇-备份与恢复 文章目录 24 Linux高级篇-备份与恢复24.1 安装dump和restore24.2 使用dump备份24.4 使用restore恢复 学习视频来自于B站【小白入门 通俗易懂】2021韩顺平 一周学会Linux。可能会用到的资料有如下所示&#xff0c;下载链接见文末&#xff1a; 《鸟哥的…...

微信小程序的图书馆预约系统设计与实现

摘 要 近年来随着社会竞争压力的不断加剧&#xff0c;人们需要不断充实自己的学识来提升自己的竞争力&#xff0c;对于在校的大学生而言需要利用在校期间实现考研考编的内容&#xff0c;职场的上班族需要通过考取职业技能资格证书来实现升职加薪&#xff0c;各行各业的人们都在…...

《2023年网信人才培训-网络安全从业人员能力素养提升培训》第一期成功举办

随着网络强国和数字中国建设的步伐加快&#xff0c;建设规模宏大、结构合理、素质优良的人才队伍成为一项重要工作。知了汇智作为数字产教融合基地&#xff0c;通过与高校、企业等多方合作&#xff0c;建立了完整的网络安全人才培养生态链。凭借自身技术优势和丰富的产业资源&a…...

WebGpu VS WebGL

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建3D应用场景 WEBGPU VS. WEBGL 粗略地概述一下WebGPU与WebGL的不同之处是很有用的。在不涉及太多复杂的技术细节的情况下&#xff0c;两者的整体设计大致如下&#xff1a; WebGL和OpenGL一样&#xff0c;涉及许多单独的函数调…...

HTML <tfoot> 标签

实例 带有 thead、tbody 以及 tfoot 元素的 HTML 表格: <table border="1"><thead><tr><th>Month</th><th>Savings</th></tr></thead><tfoot><tr><td>Sum</td><td>$180<…...

VScode的PHP远程调试模式Xdebug

目录 第一步、安装VScode中相应插件 remote-ssh的原理 ssh插件&#xff1a; PHP相关插件&#xff1a; 第二步、安装对应PHP版本的xdebug 查看PHP具体配置信息的phpinfo页面 1、首先&#xff0c;打开php编辑器&#xff0c;新建一个php文件&#xff0c;例如&#xff1a;inde…...

HTML5-2-链接

HTML使用标签 <a>来设置超文本链接。 超链接可以是一个字&#xff0c;一个词&#xff0c;或者一组词&#xff0c;也可以是一幅图像&#xff0c;您可以点击这些内容来跳转到新的文档或者当前文档中的某个部分。 默认情况下&#xff0c;链接将以以下形式出现在浏览器中&am…...

Java--常用jar命令

jar常用指令 jar命令参数&#xff1a; jar命令格式&#xff1a;jar {c t x u f }[ v m e 0 M i ][-C 目录]文件名... 其中{ctxu}这四个参数必须选选其一。[v f m e 0 M i ]是可选参数&#xff0c;文件名也是必须的。 -c 创建一个jar包 -t 显示jar中的内容列表 -x 解压jar包 …...

微服务中间件--多级缓存

多级缓存 多级缓存a.JVM进程缓存1) Caffeine2) 案例 b.Lua语法1) 变量和循环2) 条件控制、函数 c.多级缓存1) 安装OpenResty2) 请求参数处理3) 查询Tomcat4) Redis缓存预热5) 查询Redis缓存6) Nginx本地缓存 d.缓存同步1) 数据同步策略2) 安装Canal2.a) 开启MySQL主从2.b) 安装…...

clickhouse系列3:clickhouse分析英国房产价格数据

1.准备数据集 该数据集包含有关英格兰和威尔士自1995年起到2023年的房地产价格的数据,超过2800万条记录,未压缩形式的数据集大小超过4GB,在ClickHouse中需要约306MB。 2.clickhouse中建表 CREATE TABLE uk_price_paid (price UInt32,...

2023京东口腔护理赛道行业数据分析(京东销售数据分析)

近年来&#xff0c;口腔护理逐渐成为年轻人重视的健康领域&#xff0c;从口腔护理整体市场来看&#xff0c;牙膏和牙刷等基础口腔护理产品仍占据主导地位。不过&#xff0c;随着口腔护理市场逐步朝向精致化、专业化、多元化等方向发展&#xff0c;不少新兴口腔护理产品受到消费…...

安服面试 --- 01

1、常用渗透工具 burp、nmap、sqlmap、蚁剑、御剑、冰蝎、cobalt strike等 2、渗透测试中&#xff0c;拿到目标公司站点&#xff0c;接下来应该怎么做&#xff1f; &#xff08;1&#xff09;信息收集&#xff1a;收集目标公司的相关信息。包括域名、ip地址、子域名、开放端…...

ExpressLRS开源之RC链路性能测试

ExpressLRS开源之RC链路性能测试 1. 源由2. 分析3. 测试方案4. 测试设计4.1 校准测试4.2 实验室测试4.3 拉距测试4.4 遮挡测试 5. 总结6. 参考资料 1. 源由 基于ExpressLRS开源基本调试验证方法&#xff0c;对RC链路性能进行简单的性能测试。 修改设计总能够满足合理的需求&a…...

续航提升40%?EnergyStarX让Windows 11设备电量焦虑成为历史

续航提升40%&#xff1f;EnergyStarX让Windows 11设备电量焦虑成为历史 【免费下载链接】EnergyStarX &#x1f50b; Improve your Windows 11 devices battery life. A WinUI 3 GUI for https://github.com/imbushuo/EnergyStar. 项目地址: https://gitcode.com/gh_mirrors/…...

OpenCV轮廓匹配避坑指南:用cv2.matchShapes做形状识别,为什么你的结果总不准?

OpenCV轮廓匹配避坑指南&#xff1a;为什么你的cv2.matchShapes结果总是不准&#xff1f; 在工业质检、医疗影像分析等场景中&#xff0c;形状匹配的准确性直接影响着整个系统的可靠性。许多开发者在使用OpenCV的cv2.matchShapes函数时&#xff0c;明明按照官方文档操作&#x…...

暗黑破坏神2重制版智能辅助:自动化流程与效率提升完全指南

暗黑破坏神2重制版智能辅助&#xff1a;自动化流程与效率提升完全指南 【免费下载链接】botty D2R Pixel Bot 项目地址: https://gitcode.com/gh_mirrors/bo/botty 在《暗黑破坏神2&#xff1a;重制版》的冒险旅程中&#xff0c;你是否曾因重复刷怪、繁琐的装备拾取而感…...

3步实现GitHub资源精准获取:DownGit带来的开发者效率革命

3步实现GitHub资源精准获取&#xff1a;DownGit带来的开发者效率革命 【免费下载链接】DownGit github 资源打包下载工具 项目地址: https://gitcode.com/gh_mirrors/dow/DownGit 在日常开发工作中&#xff0c;每个开发者平均每周需要从GitHub获取3-5次代码资源&#xf…...

uboot移植实战:DDR初始化参数优化与调试指南

1. 理解DDR初始化在uboot移植中的重要性 第一次接触uboot移植时&#xff0c;我完全不明白为什么DDR初始化这么麻烦。直到有一次&#xff0c;我把开发板直接烧成砖头&#xff0c;才真正意识到这个环节有多关键。简单来说&#xff0c;DDR初始化就像是给电脑装内存条&#xff0c;但…...

基于DeepSeek的本地部署AI智能体:锁脸功能实现完整方案

基于DeepSeek的本地部署AI智能体:锁脸功能实现完整方案 一、项目概述与架构设计 1.1 任务目标 开发一个具有锁脸功能的AI智能体,能够: 完全本地部署,无需依赖云端服务 锁定智能体的角色设定、人格特征和对话风格 支持多轮对话记忆 提供RESTful API接口 保证角色设定在任…...

DVB-S系统设计:从理论到FPGA实现的完整指南

1. DVB-S系统概述&#xff1a;卫星数字电视的核心技术 DVB-S&#xff08;Digital Video Broadcasting - Satellite&#xff09;是卫星数字电视广播的国际标准&#xff0c;它定义了从信号编码、调制到传输的完整技术规范。我第一次接触DVB-S系统是在2015年参与一个卫星接收机项目…...

Python EXE逆向解密实战:从加密打包到源码还原的完整指南

Python EXE逆向解密实战&#xff1a;从加密打包到源码还原的完整指南 【免费下载链接】python-exe-unpacker A helper script for unpacking and decompiling EXEs compiled from python code. 项目地址: https://gitcode.com/gh_mirrors/py/python-exe-unpacker Pytho…...

从分类影像到Fragstats输入:搞定景观格局分析前处理的完整避坑指南

景观格局分析前处理全流程&#xff1a;从分类影像到Fragstats输入的实战避坑指南 当你完成遥感影像分类&#xff0c;准备计算景观指数时&#xff0c;是否遇到过Fragstats报错"Invalid input format"&#xff1f;或是发现计算结果与预期不符却找不到原因&#xff1f;本…...

MGeo地址实体对齐镜像快速上手:5分钟部署,支持自定义阈值

MGeo地址实体对齐镜像快速上手&#xff1a;5分钟部署&#xff0c;支持自定义阈值 1. 引言&#xff1a;地址数据混乱&#xff0c;是时候换个思路了 你有没有被这样的问题困扰过&#xff1f; 公司CRM系统里&#xff0c;同一个客户因为地址写法不同&#xff0c;被重复记录了十几…...