Dockfile语法
目录
dockerfile的作用
1. 构建 Docker 映像
2. 提高开发和运维效率
3. 版本控制
4. 提供可移植性和灵活性
使用示例
总结
dockerfile应该放的位置
为什么放在根目录?
例外情况
调用构建
dockerfile的基本结构和常用指令
基本结构和常用指令
示例 Dockerfile
小贴士
dockerfile的作用
Dockerfile 是定义如何创建 Docker 映像的文本文件。它充当构建镜像的“蓝图”,告诉 Docker 引擎如何一步步地构建和配置一个新的容器映像。以下是 Dockerfile 的主要作用和一些相关细节:
1. 构建 Docker 映像
-
自动化构建流程:Dockerfile 中的指令描述了如何构建一个镜像,包括安装软件包、复制文件和设置配置。通过自动化这些步骤,Dockerfile 提供了一种一致的镜像生成方式。
-
可配置性:通过对 Dockerfile 微调,您可以定义并重现复杂的软件环境,使得在不同环境(如开发、测试、生产)中更容易实现环境的一致性。
2. 提高开发和运维效率
-
简化部署:使用 Dockerfile 构建的镜像可以在任何运行 Docker 的主机上运行,不需要重新配置环境。这种能够“一次构建,到处运行”的特性,大大简化了软件的分发和部署流程。
-
推动 DevOps 实践:Dockerfile 使得开发人员能够在本地创建与生产环境一致的容器,减少应用在不同环境中运行的差异,提高开发、测试和生产环境的一致性。
3. 版本控制
-
可审查和共享:因为 Dockerfile 是文本文件,它可以很容易地与代码一起版本控制。这意味着团队可以回顾每个变化,并回滚到之前的版本,确保系统的稳定性与可靠性。
-
团队协作:在团队中,Dockerfile 能提供统一的环境定义,所有团队成员可以在相同的环境中开发和测试,而无需担心平台差异。
4. 提供可移植性和灵活性
-
跨平台兼容:Dockerfile 描述了如何安装和配置软件包,而不依赖于底层操作系统特定的安装说明。这意味着同一个 Dockerfile 可以在不同操作系统上生成相同的 Docker 映像。
-
便于扩展:因为 Dockerfile 使用基础镜像构建新的镜像,用户可以在社区现有的镜像基础上进行修改和扩展,而无需从头开始。
使用示例
一个简单的 Dockerfile 示例可以看出它如何定义应用环境:
# 使用基础镜像
FROM python:3.8# 设置工作目录
WORKDIR /app# 将当前目录内容复制到工作目录中
COPY . .# 安装依赖包
RUN pip install --no-cache-dir -r requirements.txt# 暴露端口
EXPOSE 5000# 定义容器启动时运行的命令
CMD ["python", "app.py"]
总结
Dockerfile 是构建 Docker 镜像的核心工具,它为开发人员提供了一种简单而强大的方式来描述容器化应用的构建和运行环境,提高了应用的部署和运维效率。通过借助 Dockerfile,团队可以更好地控制环境一致性,实现高效的敏捷开发和运维。
dockerfile应该放的位置
在开发项目中,Dockerfile 的位置可以影响到构建过程的便利性和最佳实践的遵循。通常情况下,Dockerfile 应该放在项目的根目录中。以下是关于为什么将 Dockerfile 放在项目根目录的几点解释,以及一些例外情况的建议:
为什么放在根目录?
-
简化上下文管理:
- 当你在项目的根目录中放置 Dockerfile 时,可以直接使用项目根目录作为构建上下文。这意味着 Docker 构建过程可以轻松访问项目中的所有文件,不需要额外的复制或操作。
- 使用命令
docker build -t your-image-name .
可以方便地在根目录构建镜像。
-
版本控制:
- 将 Dockerfile 放在根目录确保它被纳入版本控制系统(如 Git、SVN)管理中,与应用代码一起更新和共享。
-
组织项目结构:
- 集中化的项目结构利于新成员了解项目架构,知道从哪开始阅读文档和构建项目。
- 例如,存在
README.md
、Dockerfile
、依赖文件(如package.json
或requirements.txt
)等,清晰地反映项目的核心组成部分。
例外情况
有时,根据具体的项目需求,Dockerfile 可能会放在其他目录:
-
多模块项目:
- 对于大型应用,一个项目可能包含多个模块或微服务。在这种情况下,可以在各个模块的目录中各自放置一个 Dockerfile。
- 例如:
/service1/Dockerfile
/service2/Dockerfile
-
专门的 docker 目录:
- 在有复杂 Dockerfile 需求,并且涉及多个构建和配置文件时,可以考虑创建一个专门的
docker
或build
目录,专门用于存放 Dockerfile 及其相关资源。 - 例如:
/docker/Dockerfile
/docker/nginx/Dockerfile.nginx
- 在有复杂 Dockerfile 需求,并且涉及多个构建和配置文件时,可以考虑创建一个专门的
调用构建
无论将 Dockerfile 放置于何处,都可通过 -f
选项指定 Dockerfile 的位置,例如:
docker build -f path/to/Dockerfile -t your-image-name .
确保 Dockerfile 的内容和项目目录的一致性,在构建过程中可以有效利用 Docker 的缓存能力,并方便开发团队在不同环境中理解和应用构建流程。根据项目的需求和复杂性,选择合适的 Dockerfile 放置策略来保持项目清晰和高效。如果你有特定情况或问题,随时让我知道!
dockerfile的基本结构和常用指令
基本结构和常用指令
-
FROM:
- 指定基础镜像。每个 Dockerfile 必须以
FROM
指令开始。 - 例如:
FROM ubuntu:20.04
- 指定基础镜像。每个 Dockerfile 必须以
-
MAINTAINER:
- 指定维护者信息(不推荐使用,已被 LABEL 指令取代)。
- 例如:
MAINTAINER Your Name <your.email@example.com>
-
LABEL:
- 为镜像添加元数据信息,推荐用于替代 MAINTAINER。
- 例如:
LABEL maintainer="Your Name <your.email@example.com>"
-
RUN:
- 执行命令来安装包或软件。每个
RUN
会在镜像上创建一个新层。 - 例如:
RUN apt-get update && apt-get install -y nginx
- 执行命令来安装包或软件。每个
-
COPY:
- 将文件或目录从主机上下文复制到镜像中的某个路径。
- 例如:
COPY . /app
-
ADD:
- 功能类似于
COPY
,但还支持 URL 下载和提取压缩文件。 - 例如:
ADD https://example.com/file.tar.gz /app/
- 功能类似于
-
CMD:
- 指定启动容器时要运行的命令。与 ENTRYPOINT 配合使用时提供默认参数。
- 例如:
CMD ["nginx", "-g", "daemon off;"]
-
ENTRYPOINT:
- 设置容器启动时运行的主命令,常与 CMD 联合使用。
- 例如:
ENTRYPOINT ["python"]
-
ENV:
- 设置环境变量。
- 例如:
ENV APP_ENV=production
-
EXPOSE:
- 指定容器监听的端口,这实际上并不会在主机上打开这些端口。
- 例如:
EXPOSE 80
-
WORKDIR:
- 设置接下来的指令的工作目录。
- 例如:
WORKDIR /app
-
USER:
- 指定运行容器时使用的用户。
- 例如:
USER appuser
-
VOLUME:
- 声明挂载点,允许用户挂载持久化存储。
- 例如:
VOLUME /data
-
ARG:
- 定义镜像构建时可传递的变量。
- 例如:
ARG VERSION=latest
示例 Dockerfile
以下是一个简单的示例 Dockerfile,用于构建一个基于 Python 的应用程序:
# 使用官方 Python 3.8 作为基础镜像
FROM python:3.8-slim# 设置工作目录
WORKDIR /usr/src/app# 复制当前目录到工作目录
COPY . .# 安装 Python 依赖
RUN pip install --no-cache-dir -r requirements.txt# 暴露应用程序的端口
EXPOSE 8080# 指定运行容器时的启动命令
CMD ["python", "app.py"]
小贴士
- 合并 RUN 指令: 尽量合并
RUN
指令来减少图层数量,例如,将多个包管理命令放在同一个RUN
中。 - 缓存使用: 在构建时利用 Docker 缓存,常用的做法是将不常变动的指令放在顶部,例如安装包依赖。
- 通用性: 使用相对路径和通用工具,避免在不同环境中出现不兼容问题。
相关文章:
Dockfile语法
目录 dockerfile的作用 1. 构建 Docker 映像 2. 提高开发和运维效率 3. 版本控制 4. 提供可移植性和灵活性 使用示例 总结 dockerfile应该放的位置 为什么放在根目录? 例外情况 调用构建 dockerfile的基本结构和常用指令 基本结构和常用指令 示例 Dock…...
Nginx负载均衡
一。Nginx负载均衡的算法以及过程 二。nginx四层负载均衡的配置(四层) 1.vi /etc/nginx/conf.d/lb.conf 比较常见:weight:设置权重,backup:当其他主机全部用不了,这个作为备份 2.systemctl r…...
【C】初阶数据结构5 -- 栈
前面学习了两种最基本的数据结构 -- 顺序表和链表,接下来就可以基于这两种数据结构来实现其他数据结构了。其实,其他的数据结构的物理结构要么是数组,要么就是链表,所以学好顺序表和链表是学好其他数据结构的基础。接下里…...
Linux查找占用的端口,并杀死进程的简单方法
在Linux系统管理中,识别并管理占用特定端口的进程是一项常见且重要的任务。以下是优化过的步骤指南,帮助您高效地完成这一操作,同时提供了一个简洁的命令参考表。 Linux下识别并终止占用端口的进程 1. 探寻端口占用者 使用 lsof命令 lsof…...
为什么Pytorch中实例化模型会直接调用forward方法?
在 PyTorch 中,为何定义一个继承自 nn.Module 的自定义类并实现 forward 方法后,直接调用模型实例时,便会自动调用其 forward 方法?例如使用 output model(x) 这种形式。 因为自定义的神经网络类所继承的 nn.Module 类对 __call_…...
easyexcel快速使用
1.easyexcel EasyExcel是一个基于ava的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel 即通过java完成对excel的读写操作, 上传下载 2.easyexcel写操作 把java类中的对象写入到excel表格中 步骤 1.引入依赖 <depen…...
DeepSeek的出现会对百度有多大影响?
当DeepSeek与ChatGPT等大模型接管搜索入口,我们正见证百年一遇的信息革命。 01 传统搜索已死?AI助手正在重写游戏规则! 当DeepSeek与ChatGPT等大模型接管搜索入口,我们正见证百年一遇的信息革命。 就像汽车淘汰马车、触屏终结按键…...
生成格雷码
以下是Verilog实现格雷码的两种常见方法: 1. 二进制转格雷码(组合逻辑实现) module binary_to_gray #(parameter N 4 // 默认4位位宽 )(input [N-1:0] binary, // 二进制输入output [N-1:0] gray // 格雷码输出 );assign gray binary…...
【STM32】BootLoader和IAP详解
文章目录 0 前言1 基本概念2 BootLoader3 主程序相关配置4 相关理论:芯片启动与中断响应5 特殊情况:Cortex-M0内核的芯片 0 前言 最近在研究一个RT-Thread的项目,遇到很多之前没咋遇见过的STM32相关的知识,想着顺带也整体过一遍。…...
Threadlocal的实现原理
文章目录 ThreadLocal与Thread关系分析Threadlocal 不支持继承性lnheritableThreadLocal 类 ThreadLocal与Thread关系分析 由该图可知, Thread 类中有一个 threadLocals 和一个 inheritableThreadLocals , 它们 都是 ThreadLocalMap 类型 的变量 &#x…...
【Elasticsearch】多字段查询方式汇总
在 Elasticsearch 中,实现多字段查询的常见方式有以下几种,每种方式适用于不同的场景: --- ### 1. **multi_match 查询** - **用途**:在多个字段中执行同一查询,支持多种匹配策略。 - **关键参数**:…...
Unity使用反射进行Protobuf(CS/SC)协议,json格式
protobuf生成的协议,有挺多协议的.利用反射生成dto进行伪协议的响应 和 发送请求 应用场景: 请求(CS)_后端先写完了,前端还搞完时,可使用此请求,可自测 响应(SC)_可自行构建一个响应,对数据进行测试 // 请求 使用物品 CS message ReqUseItem{optional Opcodes MessageID1[def…...
MySQL和SQL server的区别
在当今数据驱动的世界里,数据库技术的选择对于企业和个人开发者来说至关重要。MySQL 和 SQL Server 是两个广泛使用的数据库管理系统(DBMS),它们各自拥有独特的优势和适用场景。本文将深入探讨这两个数据库系统之间的区别…...
SpringMVC请求执行流程源码解析
文章目录 0.SpringMVC九大内置组件1.processRequest方法1.请求先到service方法2.然后不管是get还是post都会跳转到processRequest方法统一处理 2.doService方法3.doDispatch方法1.代码2.checkMultipart 4.核心流程 0.SpringMVC九大内置组件 1.processRequest方法 1.请求先到se…...
LabVIEW与小众设备集成
在LabVIEW开发中,当面临控制如布鲁克OPUS红外光谱仪这类小众专业设备的需求,而厂家虽然提供了配套软件,但由于系统中还需要控制其他设备且不能使用厂商的软件时,必须依赖特定方法通过LabVIEW实现设备的控制。开发过程中࿰…...
docker-compose暴露端口,但其他主机无法访问问题。
问题描述:docker-compose暴露端口,但其他主机无法访问问题。 排障思路: 执行命令:ss -antlp | grep 80,发现端口正常监听0.0.0.0:80(ps:如果是127.0.0.1:80则只能本机访问同区域网段服务器执行…...
【MySQL】 基本查询(上)
欢迎拜访:雾里看山-CSDN博客 本篇主题:【MySQL】 基本查询(上) 发布时间:2025.2.14 隶属专栏:MySQL CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除) 目录 Create基…...
python 爬虫教程 0 基础入门 一份较为全面的爬虫python学习方向
文章目录 前言一、Python 爬虫简介二、环境搭建1. 下载 Python2. 安装 Python3. 安装必要的库 三、一个简单的爬虫示例四、应对网站反爬机制五、深入学习方向 前言 以下是一份较为全面的 Python 爬虫教程,涵盖基础知识、环境搭建、简单示例、反爬应对及深入学习方向…...
总结:使用JDK原生HttpsURLConnection,封装HttpsUtil工具类,加载自定义证书验证,忽略ssl证书验证
总结:使用JDK原生HttpsURLConnection,封装HttpsUtil工具类,加载自定义证书验证,忽略ssl证书验证 一HttpsUtil工具类二SSLUtil工具类 一HttpsUtil工具类 package com.example.util;import javax.net.ssl.HttpsURLConnection; impo…...
你认为如何理解“约定大于配置”?
SpringBoot的“约定大于配置”(Convention Over Configuration)是一种核心理念,旨在简化开发过程,减少开发人员在配置上的繁琐工作。以下是对其含义的详细介绍: 一、定义与目的 定义:约定优于配置&#x…...
Linux 基础IO——重定向和缓冲区
目录 一、重定向 1、重定向的本质 2、使用 dup2 系统调用 (1)输出重定向 (2)追加重定向 (3) 输入重定向 二、缓冲区 1.理解缓冲区 2.缓冲区刷新问题 3.为什么要有缓冲区? 4.这个缓冲区在哪里ÿ…...
基于若依开发的工程项目管系统开源免费,用于工程项目投标、进度及成本管理的OA 办公开源系统,非常出色!
一、简介 今天给大家推荐一个基于 RuoYi-Flowable-Plus 框架二次开发的开源工程项目管理系统,专为工程项目的投标管理、项目进度控制、成本管理以及 OA 办公需求设计。 该项目结合了 Spring Boot、Mybatis、Vue 和 ElementUI 等技术栈,提供了丰富的功能…...
华为云之CodeArts IDE的使用体验
一、CodeArts IDE介绍 1.1 CodeArts IDE简介 CodeArts IDE定位华为云开发者桌面,是利用华为自研IDE内核技术,面向华为云开发者提供的智能化可扩展桌面集成开发环境(IDE),结合华为云行业和产业开发套件,实现…...
DeepSeek-VL2 环境配置与使用指南
DeepSeek-VL2 环境配置与使用指南 DeepSeek-VL2 是由 DeepSeek 公司开发的一种高性能视觉-语言模型(VLM)。它是 DeepSeek 系列多模态模型中的一个版本,专注于提升图像和文本之间的交互能力。 本文将详细介绍如何配置 DeepSeek-VL2 的运行环…...
超纯水设备的智能化控制系统为用户带来安全简便的操作体验
随着信息技术的发展,智能化已经成为工业装备的重要发展方向之一。超纯水设备在这方面也走在了前列,配备了高性能的PLC控制系统及人机交互界面,实现了全方位的智能监控和自动化操作。本文将重点介绍该设备的智能化控制系统,探讨它如…...
若依系统环境搭建记录
开源若依系统网上资料也很全的,本篇博文记录下自己搭建环境过程中遇到的一些问题。 配置Maven和编辑器选择 我懒得配置Eclipse了,直接用vscode作为编辑器,后面构建运行都用命令行。 配置数据库连接 按照mysql5.7按网上教程即可࿱…...
基于Docker-compose的禅道部署实践:自建MySQL与Redis集成及故障排查指南
基于Docker-compose的禅道部署实践:自建MySQL与Redis集成及故障排查指南 禅道镜像版本:easysoft/zentao:21.4 Redis版本:redis:6.2.0 Mysql版本:mysql:8.0.35 文章目录 **基于Docker-compose的禅道部署实践:自建MySQL与…...
为AI聊天工具添加一个知识系统 之102 详细设计之43 自性三藏 之3 祖传代码
本文要点 法宝和三藏 总括如下: 三藏[经/律/论] 法宝:法阵/法轮/法力(三“件” 证件 / 表件 / 物件 ,分别对应三藏:论藏/律藏/经藏 --反序)。“法宝”演示了 发轮轮转的法阵中物件具有的法力。 这里的“…...
fork: retry: No child processes-linux18
根据错误信息 fork: retry: Resource temporarily unavailable 和 sh: fork: retry: No child processes,这通常是因为系统资源不足(例如可用的进程数、内存或 CPU 限制)导致的。为了解决这个问题,您可以尝试以下几种方法…...
渗透测试--文件包含漏洞
文件包含漏洞 前言 《Web安全实战》系列集合了WEB类常见的各种漏洞,笔者根据自己在Web安全领域中学习和工作的经验,对漏洞原理和漏洞利用面进行了总结分析,致力于漏洞准确性、丰富性,希望对WEB安全工作者、WEB安全学习者能有所帮助…...
【物联网】电子电路基础知识
文章目录 一、基本元器件1. 电阻2. 电容3. 电感4. 二极管(1)符号(2)特性(3)实例分析5. 三极管(1)符号(2)开关特性(3)实例6. MOS管(产效应管)(1)符号(2)MOS管极性判定(3)MOS管作为开关(4)MOS管vs三极管7. 门电路(1)与门(2)或门(3)非门二、常用元器件…...
vue学习10
1.GPT和Copilot Copilot Tab接受 删除键,不接受 ctrlenter更多方案 更适合的是修改方向 const submitForm async () > {//等待校验结果await formRef.value.validate()//提交修改await userUpdateInfoService(form.value)//通知user模块,进行数据更…...
【C语言】C语言 停车场管理系统的设计与实现(源码)【独一无二】
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 系列文章目录 目录 系列文章目录一、设计要求二、设…...
LeetCodehot100 力扣热题100 二叉树展开为链表
代码思路 目标: 将二叉树展平(flatten)为一个单链表。展平后的链表应该按照前序遍历的顺序排列节点,即: • 节点的左子树指针设置为 nullptr。 • 节点的右子树指针指向下一个节点。 代码注释及思路 class Solution…...
备战蓝桥杯 Day1 回顾语言基础
开启蓝桥杯刷题之路 Day1 回顾语言基础 1.配置dev 工具->编译选项->勾选编译时加入以下命令->设定编译器配置(release和debug)都要-> -stdc11 ->代码生成/优化->代码生成/优化->语言标准(-std)->ISO C11 ->代码警告->显示最多警告信息(-Wall)…...
基于Ceedling的嵌入式软件单元测试
Ceedling 如果你使用 Ceedling(一个针对 C 代码单元测试的构建管理器),可以更方便地管理测试。Ceedling 会自动处理 Unity 和 CMock 的集成,无需手动编写 Makefile。 1.环境搭建 1.1 Ruby环境 sudo apt-get install ruby1.2 安…...
聊一聊FutureTask源码中体现的“自旋锁”思想
前言 这篇文章记录了笔者自己对FutureTask的部分源码设计的思考与心得,属于笔者自己的观点,若有哪位热爱源码研究的同仁觉得我说的不对,欢迎批评指正。 提示:在阅读之前必须对FutureTask的源码和实现原理有一定的了解。本文要聊…...
自有证书的rancher集群使用rke部署k8s集群异常
rancher使用自签域名,或者商业证书容易踩到的坑。 最开始的报错: docker logs kubelet‘s id E0214 13:04:14.590268 9614 pod_workers.go:1300] "Error syncing pod, skipping" err"failed to \"StartContainer\" for …...
LabVIEW外腔二极管激光器稳频实验
本项目利用LabVIEW软件开发了一个用于外腔二极管激光器稳频实验的系统。系统能够实现激光器频率的稳定控制和实时监测,为激光实验提供了重要支持。 项目背景: 系统解决了外腔二极管激光器频率不稳定的问题,以满足对激光器频率稳定性要求较高…...
使用docker compose启动postgres并设置时区
设置PostGres时区 方法 1: 使用 POSTGRES_INITDB_ARGS 设置时区方法 2: 使用初始化脚本设置时区创建 init-user-db.sql更新 docker-compose.yml 启动服务 要在启动 PostgreSQL 数据库时设置时区,可以通过在 docker-compose.yml 文件中添加环境变量或通过配置文件来实…...
杜绝遛狗不牵绳,AI技术助力智慧城市宠物管理
在我们的生活中,宠物扮演着越来越重要的角色。然而,随着养宠人数的增加,一系列问题也随之而来,如烈性犬伤人、遛狗不牵绳、流浪犬泛滥等。这些问题不仅影响了社会秩序,也给宠物本身带来了安全隐患。幸运的是࿰…...
【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第二十节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(WriteMemoryByAddress_0x3D服务) 作者:车端域控测试工程师 更新日期:2025年02月14日 关键词:UDS协议、0x3D服务、内存写入、ISO 14229-1:2023、ECU测试 一、服务功能概述…...
[npm install 报错] Verion 9 of Highlight.js has reached EOL
1、在项目中执行npm install 报错 Verion 9 of Highlight.js has reached EOL,如下图: 2、报错原因 Highlight.js 不再支持10以前的版本,需下载10及之后的版本 3、解决办法 打开项目中的package.json文件,将highlight.js的版本修改为:10.7.2,删除node…...
Flutter Gradle 命令式插件正式移除,你迁移旧版 Gradle 配置了吗?
在 Flutter 3.29 版本里官方正式移除了 Flutter Gradle Apply 插件,其实该插件自 3.19 起已被弃用,同时 Flutter 团队后续也打算把 Flutter Gradle 从 Groovy 转换为 Kotlin,并将其迁移到使用 AGP(Android Gradle Pluginÿ…...
CCF-GESP 等级考试 2024年9月认证C++二级真题解析
2024年9月真题 一、单选题(每题2分,共30分) 正确答案:A 考察知识点:计算机存储 解析:磁心存储元件是早期计算机中用于存储数据的部件,它和现代计算机中的内存功能类似,都是用于临时…...
CubeMX配置STM32L071KZT6
明确需要配置的项 下面是工作中遇到某个项目提炼出来的的功能需求。其中MCU选用STM32L071KZT6。 名称 标识 IO功能 对应引脚 备注 蜂鸣器 BUZZER 开关量输出 PA2 指示灯 LED-R PA15 LED-G PA12 LED-Y PA11 按键 KEY-1 开关量输入 PB5 外…...
RadASM环境,win32汇编入门教程之二
;win32汇编环境,RadAsm入门教程之二 ;前面我们已经学了教程一,生成了第一个软件。那么让我们继续我们的学习旅程。本教程讲解一下基本窗口模版的原理。让我们打开RadASM后,双击右侧的ABC.Asm文件,一点点研究。 ;首先,我…...
mysql开启gtid并配置主从
默认主从都开启了bin log. 1.主从都在/etc/my.cnf中加入并重启服务 gtid_mode ON enforce_gtid_consistency ON 2.在主库创建用户并授权 create user slave identified with mysql_native_password by 123456 mysql>GRANT REPLICATION SLAVE ON *.* to slave% identified…...
RAG科普文!检索增强生成的技术全景解析
RAG 相关技术的八个主题:https://pub.towardsai.net/a-taxonomy-of-retrieval-augmented-generation-a39eb2c4e2ab 增强生成 (RAG) 是塑造应用生成式 AI 格局的关键技术。Lewis 等人在其开创性论文中提出了一个新概念面向知识密集型 NLP 任务的检索增强生成之后&…...
【Sceneform-EQR】实现3D场景背景颜色的定制化(背景融合的方式、Filament材质定制)
写在前面的话 Sceneform-EQR是基于(filament)扩展的一个用于安卓端的渲染引擎。故本文内容对Sceneform-EQR与Filament都适用。 需求场景 在使用Filament加载三维场景的过程中,一个3D场景对应加载一个背景纹理。而这样的话,即便…...