docker在不同主机上打镜像的问题
场景在 mac 上打包 docker 镜像导出到 liunx 的主机上运行报错架构不同的问题 原因默认情况下,Docker 会根据当前主机的架构构建镜像。也就是说,如果你在一个 x86_64 架构的机器上构建镜像,那么 Docker 会生成适用于 x86_64 架构的镜像;如果你在一个 arm64 架构的机器上构建镜像,Docker 会生成适用于 arm64 架构的镜像。 不过,你可以显式地指定要为其他平台构建镜像,使用 --platform 选项。例如: 构建特定平台的镜像:12docker build --platform linux/amd64 -t myimage .docker build --platform linux/arm64 -t myimage . 使用 docker buildx 构建多平台镜像:docker buildx 是 Docker 提供的一个扩展命令,支持多平台构建。你可以用它来为多个平台构建镜像,同时也支持将镜像推送到 Docker Hub 或其他容器镜像仓库。 首先,确保启用了 buildx,可以通过以下命令查看: 1docker buil...
Git 之仓库合并
✅ 目标将多个独立的仓库(repo1, repo2, repo3)合并到一个主仓库中,保留每个仓库的提交历史,并可选地放在不同的子目录中。
Git 相关命令的解析
✅ 撤回(add)添加的内容语法1git reset [filename] 📌 作用撤回添加到暂存区文件,不会对工作区的内容产生变化。因为 add 的时候会将文件转成 blob 对象,所以这里的 reset 只是将二进制的对象变成未引用的,具体的内容会由 gc 处理,reset 并不会删除二进制对象。 ✅ 查看当前仓库连接的远程仓库地址语法1git remote -v 示例输出: 12origin https://github.com/naiyniB/yian.git (fetch)origin https://github.com/naiyniB/yian.git (push) 📌 作用列出所有远程仓库的名称和 URL(-v 表示 verbose,显示详细地址)。 ✅ 查看当前所在的本地分支语法1git branch --show-current 💡 也可以用: 1git status 📌 作用直接输出当前分支名,如 main 或 master。 第一行会显示:On branch main ✅ 3. 查看所有本地分支1git branch 示例输出...
HTML 微数据和JSON-LD
用途让搜索引擎理解网页内容的“含义” 怎么用https://schema.org 词汇表 JSON-LD 描述网页的语义 12345678<script type="application/ld+json"> { "@context": "https://schema.org", // 这是“词典”的地址 "@type": "Person", // "Person" 这个词的定义在 schema.org 上 "name": "张三", "jobTitle": "软件工程师" }</script> 微数据 itemtype 描述术语 itemprop 描述具体属性 123456<div itemscope itemtype="https://schema.org/Person"...
JavaScript 模块重新导出(桶文件)引出的性能问题分析
模块中重新导出的问题 [模块中关于桶文件的描述] 详见 📚 JavaScript 模块系统深度笔记 什么是“桶文件”(Barrel file)?“桶文件”(Barrel file)是一种在 JavaScript/TypeScript 项目中常见的模式。它是一个特殊的模块文件(通常命名为 index.ts, index.js, all.ts 等),它的主要作用是从当前包(package)或目录下的其他多个模块中重新导出(re-export)它们的成员,从而创建一个单一的、方便的入口点。 举个例子: 假设你有一个名为 @my-lib/utils 的工具库包,里面包含几个工具函数文件: 123456@my-lib/utils/├── src/│ ├── stringUtils.ts│ ├── numberUtils.ts│ └── dateUtils.ts└── index.ts <-- 这就是“桶文件” stringUtils.ts: 12export function capitalize(str: string): string {...
JavaScript 浏览器环境的模块
| 涵盖:导入导出、执行机制、跨平台设计 一、模块基础:import 与 export1. 导出(export) 类型 语法 特点 命名导出 export const name = 'Alice';export function greet() {}export { name, greet }; 可多个,导入时名字必须匹配 默认导出 export default function() {}export default obj; 每模块最多一个,导入时可自定义名字 2. 导入(import) 场景 语法 说明 导入命名导出 import { name, greet } from './utils.js'; 名字必须匹配 导入默认导出 import main from './utils.js'; 名字可自定义 同时导入 import main, { version } from './utils.js'; 默认 + 命名 全部导入 import * as utils from...
Git 基础知识总结
一、Git 的核心概念Git 是一个分布式版本控制系统,它通过记录文件的快照(snapshot) 而不是差异,来管理代码的历史变化。 1. 四大核心对象 对象 作用 特点 Blob 存储文件内容(不包含文件名) 内容相同 → 哈希相同 Tree 存储目录结构(文件名 + 指向 blob 或子 tree) 目录的“快照” Commit 代表一次提交,指向一个 tree,记录作者、时间、消息和父提交 历史的“节点” Tag 指向某个 commit 的固定引用,用于标记版本(如 v1.0) 不会移动 ✅ 所有对象都通过 SHA-1 哈希唯一标识。 二、暂存(add) git add 的作用 核心功能:将工作目录中的文件变更添加到暂存区(index) ,为下一次提交准备内容。 本质操作: 读取文件内容 → 生成 Blob 对象 → 更新 .git/index 文件。 结果:暂存区记录了“下一次提交”的快照。 暂存区(index) 存放的目录是最新的 commit 的 tree 目录和 add 的 三、提交(Commit)与快照 每次 git co...
file 协议
🎯 一、file: 协议是什么? 🔥 一句话定义:file: 协议是一种 URL 格式,用来指向你本地硬盘上的文件,就像文件资源管理器的路径一样。 📁 二、基本语法1234file:[//<host>]<path> └──┬───┘ └──┬──┘ │ └── 路径(必须) └───────── 主机名(可选) 常见形式 格式 说明 示例 file:///路径 本地文件(最常见) file:///C:/Users/Alice/docs/hello.txt file://主机名/路径 网络共享文件(少见) file://server/shared/report.pdf ✅ 三个斜杠 ///:前两个是 语法中的://,第三个表示“根目录” 🌰 三、实际例子1. 打开本地 HTML 文件1file:///Users/Alice/project/index.html 👉 在浏览器地址栏输入,就能打开你电脑上的 index.html 2. 引用本地图片1<img src...
npm `package.json` 文件说明
npm(Node Package Manager) 是一个 包管理工具(Package Manager),它的主要职责是: 安装依赖:npm install lodash 发布包:npm publish(把你的代码发布到 npm 仓库) 管理版本:通过 package.json 和 package-lock.json 运行脚本:通过 npm run build、npm run dev 等 ✅ 一句话总结 package.json 是一个 项目说明书,它告诉: 你:这个项目依赖哪些包、怎么运行 npm / yarn / pnpm:怎么安装、发布、管理这个项目 别人:这是个什么项目、怎么使用它 它就像一本书的“封面 + 目录 + 前言”。 🧩 举个生活例子:开餐馆 类比 对应 package.json 餐馆名字 "name": "小王面馆" 菜单(有什么菜) "scripts":start, build 等命令 食材从哪进货 "dependencies&q...
npm vs pnpm
软链接硬链接pnpm 和 npm 都是 Node.js 生态系统中的包管理器,用于安装、更新、卸载和管理项目依赖。它们的主要区别体现在性能、磁盘空间使用、依赖结构和安装方式上。 以下是 pnpm 和 npm 的主要区别: 1. 依赖存储方式(核心区别) npm: 从 npm 3.x 开始,npm 采用扁平化依赖结构(flat dependency tree)。 它会将所有依赖尽可能地提升到 node_modules 的根目录,以减少嵌套层级。 但是,当存在版本冲突时,它仍然会在子目录中安装不同版本的包。 每个项目都会独立下载和存储其依赖,即使多个项目使用相同的包版本,也会在各自的 node_modules 中重复存储,占用更多磁盘空间。 pnpm: 采用内容可寻址存储(Content-Addressable Store)和硬链接(Hard Links)机制。 所有下载的包都存储在一个全局的、单一的内容可寻址存储中(通常位于用户主目录下,如 ~/.pnpm-store)。 当一个项目需要某个包时,pnpm 会从全局存储中创建指向该包的硬链接到项目的 node_modul...