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

公司网站的作用意义维护建设管理山东工艺美术学院网站建设公司

公司网站的作用意义维护建设管理,山东工艺美术学院网站建设公司,win7建设网站,自己怎样建网站做微商目录 一、引言 二、Docker Compose 文件基础 三、针对不同环境的 Docker 编排 开发环境 测试环境 生产环境 四、配置文件全局变量的编写 五、总结 一、引言 在软件开发和部署的过程中,不同的环境有着不同的需求和配置。Docker 作为一种强大的容器化技术&…

目录

一、引言

二、Docker Compose 文件基础

三、针对不同环境的 Docker 编排

开发环境

测试环境

生产环境

四、配置文件全局变量的编写

五、总结


一、引言

在软件开发和部署的过程中,不同的环境有着不同的需求和配置。Docker 作为一种强大的容器化技术,能够帮助我们轻松地创建和管理不同环境下的应用程序。通过合理地编排 Docker 容器,我们可以确保应用在开发、测试和生产环境中的一致性和可靠性。本文将详细介绍如何针对这三种环境进行 Docker 编排,包括 docker-compose 文件的编写以及配置文件全局变量的设置。

二、Docker Compose 文件基础

Docker Compose 是一个用于定义和运行多个 Docker 容器的工具,它使用 YAML 文件来配置应用程序的服务、网络和卷等方面14. 以下是一个基本的 docker-compose.yml 文件结构:

version: '3.3'
services:# 服务1的配置service1:image: image_name:tagcontainer_name: container_nameworking_dir: /path/to/working/dircommand: command_to_runvolumes:- host_path:container_pathenvironment:- VAR1=value1- VAR2=value2ports:- "host_port:container_port"restart: alwaysruntime: nvidia# 服务2的配置service2:# 类似服务1的配置项...

其中:

  • version指定了 Docker Compose 的版本,不同版本可能具有不同的特性和语法14.
  • services下定义了各个服务,每个服务都有自己的配置,如image指定了使用的 Docker 镜像,container_name定义了容器的名称,working_dir设置了容器内的工作目录,command是容器启动时要执行的命令14.
  • volumes用于挂载主机目录到容器内,实现数据的持久化或共享14.
  • environment设置了容器内的环境变量14.
  • ports进行端口映射,将容器内的端口映射到主机的端口上,方便外部访问14.
  • restart定义了容器的重启策略,always表示容器总是在退出后自动重启14.
  • runtime指定了容器运行时的环境,如nvidia表示使用 NVIDIA 的 GPU 运行时环境。

三、针对不同环境的 Docker 编排

开发环境
  • 特点:开发环境主要用于开发者进行代码编写、调试和初步测试。通常需要频繁地修改代码和配置,并且对环境的灵活性要求较高,以便快速迭代和验证新功能3.
  • Docker Compose 编排示例
version: '3.3'
services:hy-asr-dev:image: hy-asr:v1.0container_name: hy-asr-server-devworking_dir: /workspace/hy-asrcommand: python3 hy_asr_main.pyvolumes:- /usr/share/zoneinfo:/usr/share/zoneinfo- /etc/localtime:/etc/timezone:ro-./logs:/workspace/hy-asr/logs-./resources:/workspace/hy-asr/resources-../src:/workspace/hy-asr/src  # 挂载本地代码目录,方便开发时修改代码environment:- TZ=Asia/Shanghai- CUDA_DEVICE_ORDER=PCI_BUS_ID- CUDA_VISIBLE_DEVICES=0  # 可根据开发机器的GPU资源进行调整(不同环境可视GPU不同,以免出现多个环境使用同一GPU出现显存处理不足的问题)
# 以下是配置全局变量,在配置文件中一般使用 ${KAFKA_BROKER_URL:192.168.0.24:9093} 作为全局可变配置参数- SERVER_PORT=- KAFKA_BROKER_URL=- DB_USERNAME=iotmp- DB_PASSWORD=- DB_HOST=- DB_PORT=- MINIO_ENDPOINT=- MINIO_ACCESS_KEY=- MINIO_SECRET_KEY=- MINIO_BUCKET_NAME=- MINIO_SECURE=ports:- "8668:8666"restart: alwaysruntime: nvidia

在开发环境的编排中,我们额外挂载了本地的代码目录../src到容器内的/workspace/hy-asr/src,这样开发者在主机上修改代码后,容器内的代码也会同步更新,无需重新构建镜像。同时,我们可以根据开发机器的实际情况调整 GPU 设备的可见性和端口号等配置。

测试环境
  • 特点:测试环境用于对开发完成的功能进行系统的测试,包括功能测试、性能测试等。测试环境的配置应该尽可能地接近生产环境,以确保测试结果的准确性和可靠性,但也可能需要一些特定的测试工具和配置3.
  • Docker Compose 编排示例
version: '3.3'
services:hy-asr-test:image: hy-asr:v1.0container_name: hy-asr-server-testworking_dir: /workspace/hy-asrcommand: python3 hy_asr_main.pyvolumes:- /usr/share/zoneinfo:/usr/share/zoneinfo- /etc/localtime:/etc/timezone:ro-./logs:/workspace/hy-asr/logs-./resources:/workspace/hy-asr/resourcesenvironment:- TZ=Asia/Shanghai- CUDA_DEVICE_ORDER=PCI_BUS_ID- CUDA_VISIBLE_DEVICES=2- SERVER_PORT=8667- KAFKA_BROKER_URL=- DB_USERNAME=- DB_PASSWORD=- DB_HOST=- DB_PORT=- MINIO_ENDPOINT=- MINIO_ACCESS_KEY=- MINIO_SECRET_KEY=- MINIO_BUCKET_NAME=- MINIO_SECURE=Falseports:- "8667:8666"restart: alwaysruntime: nvidia

与开发环境相比,测试环境的编排可能会使用不同的外部服务地址或测试数据库等配置,以模拟真实的生产环境场景。例如,这里的KAFKA_BROKER_URLDB_HOST等配置与开发环境有所不同,指向了专门为测试环境搭建的服务。

生产环境
  • 特点:生产环境是应用程序最终运行的环境,要求高度的稳定性、可靠性和安全性。配置应该经过严格的测试和验证,并且尽可能地优化性能和资源利用3.
  • Docker Compose 编排示例
version: '3.3'
services:hy-asr-prod:image: hy-asr:v1.0container_name: hy-asr-server-prodworking_dir: /workspace/hy-asrcommand: python3 hy_asr_main.pyvolumes:- /usr/share/zoneinfo:/usr/share/zoneinfo- /etc/localtime:/etc/timezone:ro-./logs:/workspace/hy-asr/logs-./resources:/workspace/hy-asr/resourcesenvironment:- TZ=Asia/Shanghai- CUDA_DEVICE_ORDER=PCI_BUS_ID- CUDA_VISIBLE_DEVICES=3- SERVER_PORT=80- KAFKA_BROKER_URL=prod_kafka.example.com:9092- DB_USERNAME=prod_user- DB_PASSWORD=Prod@Passw0rd- DB_HOST=prod_db.example.com- DB_PORT=3306- MINIO_ENDPOINT=prod_minio.example.com:29000- MINIO_ACCESS_KEY=prod_admin- MINIO_SECRET_KEY=ProdAdmin@123!- MINIO_BUCKET_NAME=dida- MINIO_SECURE=Trueports:- "8669:8666"restart: alwaysruntime: nvidia

在生产环境中,我们使用了正式的域名和生产级别的配置,如prod_kafka.example.comprod_db.example.com等,并且将端口映射到了标准的 HTTP 端口 80。同时,对于敏感信息如数据库密码等,应该使用更严格的安全措施进行管理,这里只是简单示例,实际生产中可能会使用加密存储或从安全的配置中心获取等方式。

四、同时启动docker-compose开发环境、测试环境、生产环境

示例:docker-compose.yml文件内容如下

version: '3.3'
services:# 开发环境服务hy-asr-dev:image: hy-asr:v1.0container_name: hy-asr-server-devworking_dir: /workspace/hy-asrcommand: python3 hy_asr_main.pyvolumes:- /usr/share/zoneinfo:/usr/share/zoneinfo- /etc/localtime:/etc/timezone:ro-./logs:/workspace/hy-asr/logs-./resources:/workspace/hy-asr/resources-../src:/workspace/hy-asr/srcenvironment:- TZ=Asia/Shanghai- CUDA_DEVICE_ORDER=PCI_BUS_ID- CUDA_VISIBLE_DEVICES=0  # 容器可见GPU(假设服务器为多显卡,课件GPU可设置为0, 1, 2, 3)- SERVER_PORT=8667
# 以下是配置全局变量的值,若在项目中配置文件中有使用${... : ...}指定值,会使其替换为这里定义的全局变量值- KAFKA_BROKER_URL=- DB_USERNAME=- DB_PASSWORD=- DB_HOST=- DB_PORT=- MINIO_ENDPOINT=- MINIO_ACCESS_KEY=- MINIO_SECRET_KEY=- MINIO_BUCKET_NAME=- MINIO_SECURE=ports:
# 原需调用的接口为10.0.4.66:8666,映射后调用该开发环境服务接口为10.0.4.66:8667- "8667:8666" # 8667是在容器外的映射端口,8666是容器内项目实际需要调用服务的端口restart: alwaysruntime: nvidia# 测试环境服务hy-asr-test:image: hy-asr:v1.0container_name: hy-asr-server-testworking_dir: /workspace/hy-asrcommand: python3 hy_asr_main.pyvolumes:- /usr/share/zoneinfo:/usr/share/zoneinfo- /etc/localtime:/etc/timezone:ro-./logs:/workspace/hy-asr/logs-./resources:/workspace/hy-asr/resourcesenvironment:- TZ=Asia/Shanghai- CUDA_DEVICE_ORDER=PCI_BUS_ID- CUDA_VISIBLE_DEVICES=2- SERVER_PORT=8668- KAFKA_BROKER_URL=- DB_USERNAME=- DB_PASSWORD=- DB_HOST=- DB_PORT=- MINIO_ENDPOINT=- MINIO_ACCESS_KEY=- MINIO_SECRET_KEY=- MINIO_BUCKET_NAME=- MINIO_SECURE=Falseports:
# 原需调用的接口为10.0.4.66:8666,映射后调用该测试环境服务接口为10.0.4.66:8668- "8668:8666"restart: alwaysruntime: nvidia# 生产环境服务hy-asr-prod:image: hy-asr:v1.0container_name: hy-asr-server-prodworking_dir: /workspace/hy-asrcommand: python3 hy_asr_main.pyvolumes:- /usr/share/zoneinfo:/usr/share/zoneinfo- /etc/localtime:/etc/timezone:ro-./logs:/workspace/hy-asr/logs-./resources:/workspace/hy-asr/resourcesenvironment:- TZ=Asia/Shanghai- CUDA_DEVICE_ORDER=PCI_BUS_ID- CUDA_VISIBLE_DEVICES=3- SERVER_PORT=80- KAFKA_BROKER_URL=- DB_USERNAME=- DB_PASSWORD=- DB_HOST=- DB_PORT=- MINIO_ENDPOINT=- MINIO_ACCESS_KEY=- MINIO_SECRET_KEY=- MINIO_BUCKET_NAME=- MINIO_SECURE=Trueports:
# 原需调用的接口为10.0.4.66:8666,映射后调用该生产环境服务接口为10.0.4.66:8668- "8669:8666"restart: alwaysruntime: nvidia

五、配置文件全局变量的编写

配置文件可变全局变量如何定义?

如下使用 ${KAFKA_BROKER_URL:192.168.0.4:9093} 形式

kafka:broker_url: ${KAFKA_BROKER_URL:192.168.0.4:9093}topic_name: ${KAFKA_TOPIC_NAME:hy-asr-audio}consumer_topic: ${KAFKA_CONSUMER_TOPIC:hy-asr-generate}group_id: ${KAFKA_GROUP_ID:hy-asr}auto_offset_reset: ${KAFKA_AUTO_OFFSET_RESET:earliest}enable_auto_commit: ${KAFKA_ENABLE_AUTO_COMMIT:true} # 是否自动提交偏移量,默认为true

在 Docker Compose 文件中,我们可以使用环境变量来设置配置文件的全局变量,这样可以方便地在不同环境中切换配置,而无需修改 Docker Compose 文件本身。例如,对于KAFKA_BROKER_URL,我们可以这样设置:

environment:- KAFKA_BROKER_URL=${KAFKA_BROKER_URL:192.168.0.4:9093}

这里的 ${KAFKA_BROKER_URL:192.168.0.4:9093} 表示如果环境变量KAFKA_BROKER_URL未设置,则使用默认值192.168.0.4:9093。在实际使用中,我们可以在启动 Docker 容器之前,在主机上设置相应的环境变量,或者在 CI/CD 流程中通过脚本设置环境变量,从而实现不同环境下的配置切换。例如,在开发环境中,也可以在终端中执行 export KAFKA_BROKER_URL=dev_kafka.example.com:9092,然后再运行 docker-compose up,这样容器内的KAFKA_BROKER_URL环境变量就会使用开发环境的配置。

http://www.hkea.cn/news/775670/

相关文章:

  • php建设网站实训百度搜索引擎的总结
  • 怎么在360自己做网站重庆seo排名收费
  • 外贸网站建设浩森宇特教育培训报名
  • 网站开发价目表深圳市前十的互联网推广公司
  • php做视频直播网站关键词竞价广告
  • 重庆怎么站seo深圳网络推广团队
  • 自学软件网站开发网络推广怎样做
  • 最新版的wordpress怎么添加特征图优化关键词的作用
  • 深圳做网站google推广网络营销和传统营销的区别和联系
  • 专业做网站的顺德公司网络推广怎么收费
  • php商城网站建设多少钱天津百度seo排名优化
  • 注册网站免费注册insseo关键词优化推广哪家好
  • 深圳房地产网站开发常见的网络营销工具有哪些
  • .net 网站管理系统湖南企业竞价优化首选
  • 南山区住房与建设局官方网站网络赚钱推广
  • wordpress mycred汉化seo引擎搜索入口
  • 在线教育网站用什么做百度搜索的优势
  • 甘肃省住房城乡建设厅网站首页智能建站模板
  • 智能科技网站模板下载地址百度学术论文查重
  • 网站要怎么做才能让360收录推广品牌的策划方案
  • 做网站前景营销课程培训视频
  • 青海做网站广告开户南京seo
  • wordpress写软文赚钱seo快速培训
  • 南宁网站建设接单陕西省人民政府
  • wordpress网站价格seo域名综合查询
  • 支付网站怎么做的网络自动推广软件
  • js做网站统计品牌关键词优化
  • 微信公众号管理平台官网谷歌seo建站
  • 鲜花购物网站源码企业网站营销的优缺点
  • 表白网站制作在线日照网站优化公司