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

Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境

Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境

Dockerfile 是一个文本文件, 包含了构建 Docker 镜像的所有指令。

Dockerfile 是一个用来构建镜像的文本文件, 文本内容包含了一条条构建镜像所需的指令和说明。

通过定义一系列命令和参数, Dockerfile 指导 Docker 构建一个自定义的镜像。

使用方法

  • 创建项目目录:

打包 docker 镜像项目目录内需要包含 Dockerfile 文件 (确保文件名大小写正确, 并且没有文件扩展名)。

目录结构如下:

 /home+- /jack+- /package-dock-img-project+- Dockerfile
  • 进入项目目录:

进入包含 Dockerfile 文件的项目目录。

  • 执行 docker 命令构建镜像:

在包含 Dockerfile 文件的项目目录中执行以下命令:

docker build -t <your-image-name>:<tag> .# 命令说明:
# "<your-image-name>" 是你希望给镜像起的名字。
# "<tag>" 是镜像的版本号, 例如 latest。如果你不指定 tag, 默认是 latest。
# "." 表示 Dockerfile 文件的位置, 这里是当前目录。

完整脚本

# compile-env/moby-26.1.4/golang:1.21.12-bookworm (Whole)
# Create by GF 2025-02-18FROM tonistiigi/xx:1.4.0 AS xx# 使用官方 golang-1.21.12-bookworm 运行时作为父镜像
FROM golang:1.21.12-bookworm AS base
COPY --from=xx / /# 设置维护者信息
LABEL maintainer="goufeng928@live.com"# ################################################ Extracting Information from "moby-26.1.4/Dockerfile":
# ...
# FROM --platform=$BUILDPLATFORM tonistiigi/xx:${XX_VERSION} AS xx
# ...
# FROM --platform=$BUILDPLATFORM ${GOLANG_IMAGE} AS base
# ...
# COPY --from=xx / /
# ...
# RUN ... apt-get install --no-install-recommends -y file
# ...
# FROM base AS criu
# ...
# RUN ... apt-get install -y --no-install-recommends criu
# ...
# FROM base AS containerd-build
# ...
# RUN ... xx-apt-get install -y --no-install-recommends gcc libbtrfs-dev libsecret-1-dev pkg-config
# ...
# FROM base AS runc-build
# ...
# RUN ... xx-apt-get install -y --no-install-recommends dpkg-dev gcc libc6-dev libseccomp-dev pkg-config
# ...
# FROM base AS tini-build
# ...
# RUN ... apt-get install -y --no-install-recommends cmake
# ...
# RUN ... xx-apt-get install -y --no-install-recommends gcc libc6-dev pkg-config
# ...
# FROM base AS rootlesskit-build
# ...
# RUN ... xx-apt-get install -y --no-install-recommends gcc libc6-dev pkg-config
# ...
# FROM base AS crun
# ...
# RUN ... apt-get install -y --no-install-recommends autoconf automake build-essential libcap-dev \
#             libprotobuf-c-dev libseccomp-dev libsystemd-dev libtool libudev-dev libyajl-dev python3
# ...
# FROM base AS containerutil-build
# ...
# RUN ... xx-apt-get install -y --no-install-recommends gcc g++ libc6-dev pkg-config
# ...
# FROM base AS dev-systemd-false
# ...
# FROM dev-systemd-false AS dev-systemd-true
# ...
# RUN ... apt-get install -y --no-install-recommends dbus dbus-user-session systemd systemd-sysv
# ...
# FROM dev-systemd-${SYSTEMD} AS dev-base
# ...
# RUN ... apt-get install -y --no-install-recommends apparmor bash-completion bzip2 inetutils-ping \
#             iproute2 iptables jq libcap2-bin libnet1 libnl-3-200 libprotobuf-c1 libyajl2 net-tools \
#             patch pigz sudo systemd-journal-remote thin-provisioning-tools uidmap vim vim-common \
#             xfsprogs xz-utils zip zstd
# ...
# RUN ... apt-get install --no-install-recommends -y gcc pkg-config dpkg-dev libapparmor-dev \
#             libseccomp-dev libsecret-1-dev libsystemd-dev libudev-dev yamllint
# ...
# FROM base AS build
# ...
# RUN ... apt-get install --no-install-recommends -y clang lld llvm
# ...
# RUN ... xx-apt-get install --no-install-recommends -y dpkg-dev gcc libapparmor-dev libc6-dev \
#             libseccomp-dev libsecret-1-dev libsystemd-dev libudev-dev pkg-config
# ...
# [Total: 52 "apt-get install" Packages, 11 "xx-apt-get install" Packages]RUN sed -i "s#deb.debian.org#mirrors.aliyun.com#g" /etc/apt/sources.list.d/debian.sources# Debian 及其衍生版本中用于处理 debconf 配置文件的工具是 "apt-utils",
# 未安装 "apt-utils", 可能出现 "debconf: delaying package configuration, since apt-utils is not installed" 这样的错误。RUN    apt-get update \&& apt-get install -y --no-install-recommends apt-utils# ...............................................RUN    apt-get update \&& apt-get install -y --no-install-recommends \apparmor autoconf automake bash-completion build-essential bzip2 clang cmake criu dbus \dbus-user-session dpkg-dev file gcc inetutils-ping iproute2 iptables jq libapparmor-dev \libcap-dev libcap2-bin libnet1 libnl-3-200 libprotobuf-c-dev libprotobuf-c1 libseccomp-dev \libsecret-1-dev libsystemd-dev libtool libudev-dev libyajl-dev libyajl2 lld llvm net-tools \patch pigz pkg-config python3 sudo systemd systemd-journal-remote systemd-sysv \thin-provisioning-tools uidmap vim vim-common xfsprogs xz-utils yamllint zip zstd# ...............................................RUN    apt-get update \&& xx-apt-get install -y --no-install-recommends \dpkg-dev g++ gcc libapparmor-dev libbtrfs-dev libc6-dev libseccomp-dev libsecret-1-dev \libsystemd-dev libudev-dev pkg-configRUN sed -i "s#mirrors.aliyun.com#deb.debian.org#g" /etc/apt/sources.list.d/debian.sources# ################################################ Extracting Information from "moby-26.1.4/Dockerfile":
# ...
# FROM base AS tomll
# ...
# RUN ... GOBIN=/build/ GO111MODULE=on go install "github.com/pelletier/go-toml/cmd/tomll@${GOTOML_VERSION}"
# ...
# FROM base AS gowinres
# ...
# RUN ... GOBIN=/build/ GO111MODULE=on go install "github.com/tc-hib/go-winres@${GOWINRES_VERSION}"
# ...
# FROM base AS golangci_lint
# ...
# RUN ... GOBIN=/build/ GO111MODULE=on go install "github.com/golangci/golangci-lint/cmd/golangci-lint@${GOLANGCI_LINT_VERSION}"
# ...
# FROM base AS gotestsum
# ...
# RUN ... GOBIN=/build/ GO111MODULE=on go install "gotest.tools/gotestsum@${GOTESTSUM_VERSION}"
# ...
# FROM base AS shfmt
# ...
# RUN ... GOBIN=/build/ GO111MODULE=on go install "mvdan.cc/sh/v3/cmd/shfmt@${SHFMT_VERSION}"
# ...
# FROM base AS gopls
# ...
# RUN ... GOBIN=/build/ GO111MODULE=on go install "golang.org/x/tools/gopls@latest"
# ...COPY for-tomll/  /opt/for-tomll
WORKDIR /opt/for-tomllRUN tar   -zxvf go-toml-1.8.1.tar.gz
RUN mkdir -p    /usr/local/go/src/github.com/pelletier/go-toml/
RUN cp    -r    /opt/for-tomll/go-toml-1.8.1/* /usr/local/go/src/github.com/pelletier/go-toml/WORKDIR /usr/local/go
RUN GO111MODULE=off go install /usr/local/go/src/github.com/pelletier/go-toml/cmd/tomll# ...............................................COPY for-go-winres/  /opt/for-go-winres
WORKDIR /opt/for-go-winresRUN tar -zxvf winres-0.2.1.tar.gz              && mkdir -p /usr/local/go/src/github.com/tc-hib/winres/
RUN tar -zxvf resize-20180222-archive.tar.gz   && mkdir -p /usr/local/go/src/github.com/nfnt/resize/
RUN tar -zxvf image-0.22.0.tar.gz              && mkdir -p /usr/local/go/src/golang.org/x/image/
RUN tar -zxvf cli-2.27.4.tar.gz                && mkdir -p /usr/local/go/src/github.com/urfave/cli/v2/
RUN tar -zxvf go-md2man-2.0.4.tar.gz           && mkdir -p /usr/local/go/src/github.com/cpuguy83/go-md2man/v2/
RUN tar -zxvf smetrics-20240522-archive.tar.gz && mkdir -p /usr/local/go/src/github.com/xrash/smetrics/
RUN tar -zxvf blackfriday-2.1.0.tar.gz         && mkdir -p /usr/local/go/src/github.com/russross/blackfriday/v2/
RUN tar -zxvf go-winres-0.3.1.tar.gz           && mkdir -p /usr/local/go/src/github.com/tc-hib/go-winres/RUN cp -r /opt/for-go-winres/winres-0.2.1/*               /usr/local/go/src/github.com/tc-hib/winres/
RUN cp -r /opt/for-go-winres/resize-20180222-archive/*    /usr/local/go/src/github.com/nfnt/resize/
RUN cp -r /opt/for-go-winres/image-0.22.0/*               /usr/local/go/src/golang.org/x/image/
RUN cp -r /opt/for-go-winres/cli-2.27.4/*                 /usr/local/go/src/github.com/urfave/cli/v2/
RUN cp -r /opt/for-go-winres/go-md2man-2.0.4/*            /usr/local/go/src/github.com/cpuguy83/go-md2man/v2/
RUN cp -r /opt/for-go-winres/smetrics-20240522-archive/*  /usr/local/go/src/github.com/xrash/smetrics/
RUN cp -r /opt/for-go-winres/blackfriday-2.1.0/*          /usr/local/go/src/github.com/russross/blackfriday/v2/
RUN cp -r /opt/for-go-winres/go-winres-0.3.1/*            /usr/local/go/src/github.com/tc-hib/go-winres/WORKDIR /usr/local/go
RUN GO111MODULE=off go install ./src/github.com/tc-hib/go-winres# ...............................................COPY for-gotestsum/  /opt/for-gotestsum
WORKDIR /opt/for-gotestsumRUN tar -zxvf color-1.17.0.tar.gz                  && mkdir -p /usr/local/go/src/github.com/fatih/color/
RUN tar -zxvf fsnotify-1.7.0.tar.gz                && mkdir -p /usr/local/go/src/github.com/fsnotify/fsnotify/
RUN tar -zxvf go-colorable-20230322-archive.tar.gz && mkdir -p /usr/local/go/src/github.com/mattn/go-colorable/
RUN tar -zxvf go-isatty-20231017-archive.tar.gz    && mkdir -p /usr/local/go/src/github.com/mattn/go-isatty/
RUN tar -zxvf gotestdox-20240608-archive.tar.gz    && mkdir -p /usr/local/go/src/github.com/bitfield/gotestdox/
RUN tar -zxvf gotestsum-1.8.2.tar.gz               && mkdir -p /usr/local/go/src/gotest.tools/gotestsum/
RUN tar -zxvf mod-0.22.0.tar.gz                    && mkdir -p /usr/local/go/src/golang.org/x/mod/
RUN tar -zxvf pflag-1.0.5.tar.gz                   && mkdir -p /usr/local/go/src/github.com/dnephin/pflag/
RUN tar -zxvf shlex-20191202-archive.tar.gz        && mkdir -p /usr/local/go/src/github.com/google/shlex/
RUN tar -zxvf sync-0.9.0.tar.gz                    && mkdir -p /usr/local/go/src/golang.org/x/sync/
RUN tar -zxvf sys-0.27.0.tar.gz                    && mkdir -p /usr/local/go/src/golang.org/x/sys/
RUN tar -zxvf term-0.26.0.tar.gz                   && mkdir -p /usr/local/go/src/golang.org/x/term/
RUN tar -zxvf text-0.3.0.tar.gz                    && mkdir -p /usr/local/go/src/golang.org/x/text/
RUN tar -zxvf tools-0.22.1.tar.gz                  && mkdir -p /usr/local/go/src/golang.org/x/tools/RUN cp -r /opt/for-gotestsum/color-1.17.0/*                  /usr/local/go/src/github.com/fatih/color/
RUN cp -r /opt/for-gotestsum/fsnotify-1.7.0/*                /usr/local/go/src/github.com/fsnotify/fsnotify/
RUN cp -r /opt/for-gotestsum/go-colorable-20230322-archive/* /usr/local/go/src/github.com/mattn/go-colorable/
RUN cp -r /opt/for-gotestsum/go-isatty-20231017-archive/*    /usr/local/go/src/github.com/mattn/go-isatty/
RUN cp -r /opt/for-gotestsum/gotestdox-20240608-archive/*    /usr/local/go/src/github.com/bitfield/gotestdox/
RUN cp -r /opt/for-gotestsum/gotestsum-1.8.2/*               /usr/local/go/src/gotest.tools/gotestsum/
RUN cp -r /opt/for-gotestsum/mod-0.22.0/*                    /usr/local/go/src/golang.org/x/mod/
RUN cp -r /opt/for-gotestsum/pflag-1.0.5/*                   /usr/local/go/src/github.com/dnephin/pflag/
RUN cp -r /opt/for-gotestsum/shlex-20191202-archive/*        /usr/local/go/src/github.com/google/shlex/
RUN cp -r /opt/for-gotestsum/sync-0.9.0/*                    /usr/local/go/src/golang.org/x/sync/
RUN cp -r /opt/for-gotestsum/sys-0.27.0/*                    /usr/local/go/src/golang.org/x/sys/
RUN cp -r /opt/for-gotestsum/term-0.26.0/*                   /usr/local/go/src/golang.org/x/term/
RUN cp -r /opt/for-gotestsum/text-0.3.0/*                    /usr/local/go/src/golang.org/x/text/
RUN cp -r /opt/for-gotestsum/tools-0.22.1/*                  /usr/local/go/src/golang.org/x/tools/WORKDIR /usr/local/go
RUN GO111MODULE=off go install /usr/local/go/src/gotest.tools/gotestsum# ...............................................COPY for-shfmt/  /opt/for-shfmt
WORKDIR /opt/for-shfmtRUN tar -zxvf diff-20241225-archive.tar.gz && mkdir -p /usr/local/go/src/github.com/pkg/diff/
RUN tar -zxvf editorconfig-0.3.0.tar.gz    && mkdir -p /usr/local/go/src/mvdan.cc/editorconfig/
RUN tar -zxvf sh-3.8.0.tar.gz              && mkdir -p /usr/local/go/src/mvdan.cc/sh/v3/
RUN tar -zxvf renameio-2.0.0.tar.gz        && mkdir -p /usr/local/go/src/github.com/google/renameio/v2/RUN cp -r /opt/for-shfmt/diff-20241225-archive/* /usr/local/go/src/github.com/pkg/diff/
RUN cp -r /opt/for-shfmt/editorconfig-0.3.0/*    /usr/local/go/src/mvdan.cc/editorconfig/
RUN cp -r /opt/for-shfmt/sh-3.8.0/*              /usr/local/go/src/mvdan.cc/sh/v3/
RUN cp -r /opt/for-shfmt/renameio-2.0.0/*        /usr/local/go/src/github.com/google/renameio/v2/WORKDIR /usr/local/go
RUN GO111MODULE=off go install /usr/local/go/src/mvdan.cc/sh/v3/cmd/shfmt# ...............................................WORKDIR /usr/local/go
RUN GO111MODULE=on GOPROXY=https://goproxy.cn,direct \go install "github.com/golangci/golangci-lint/cmd/golangci-lint@v1.55.2"WORKDIR /usr/local/go
RUN GO111MODULE=on GOPROXY=https://goproxy.cn,direct \go install "golang.org/x/tools/gopls@v0.16.1"# ###############################################RUN rm -rf /opt/for-tomll
RUN rm -rf /opt/for-go-winres
RUN rm -rf /opt/for-gotestsum
RUN rm -rf /opt/for-shfmtWORKDIR /go

总结

以上就是关于 Linux运维 Dockerfile 打包 Moby-26.1.4 编译 dockerd 环境 的全部内容。

更多内容可以访问我的代码仓库:

https://gitee.com/goufeng928/public

https://github.com/goufeng928/public

相关文章:

Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境

Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境 Dockerfile 是一个文本文件, 包含了构建 Docker 镜像的所有指令。 Dockerfile 是一个用来构建镜像的文本文件, 文本内容包含了一条条构建镜像所需的指令和说明。 通过定义一系列命令和参数, Dockerfile 指导 Docker 构…...

数据中心储能蓄电池状态监测管理系统 组成架构介绍

安科瑞刘鸿鹏 摘要 随着数据中心对供电可靠性要求的提高&#xff0c;蓄电池储能系统成为关键的后备电源。本文探讨了蓄电池监测系统在数据中心储能系统中的重要性&#xff0c;分析了ABAT系列蓄电池在线监测系统的功能、技术特点及其应用优势。通过蓄电池监测系统的实施&#…...

layui.table.exportFile 导出数据并清除单元格中的空格

Layui在执行数据导出的时候&#xff0c;会出现部分数据单元格中有空格的情况,下面的方法可以去除掉单元格中的空格,供大家参考&#xff01;&#xff01; function table_export(id,title) {//根据传入tableID获取表头var headers $("div[lay-id" id "] .layu…...

vue-指令

前端开发Vue的指令 Vue.js 提供了丰富的指令系统&#xff0c;用于扩展HTML的功能和行为。这些指令可以分为内置指令和自定义指令两大类。以下是对Vue.js中常见指令的详细解释和示例&#xff1a; 1. 内置指令 1.1 插值表达式 用法&#xff1a;{{ expression }}示例&#xff…...

跟着李沐老师学习深度学习(十三)

现代循环神经网络 循环神经网络中梯度异常在实践中的意义引发了一些问题&#xff1a; 早期观测值影响重大&#xff1a;早期观测值对预测所有未来观测值极为重要&#xff0c;如序列中第一个观测值包含校验和&#xff0c;需在序列末尾辨别其是否正确&#xff0c;若无特殊机制存…...

鸿蒙与跨端迁移的重要性

鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是由华为公司开发的一款面向未来的全场景分布式操作系统。它旨在提供一个统一的平台&#xff0c;支持各种设备之间的无缝协作和数据共享&#xff0c;从而为用户提供更加连贯和高效的体验。在鸿蒙的生态系统中&#xff0c;跨端迁移…...

成员函数定义后面加const是什么功能:C++中const成员函数的作用

成员函数定义后面加const是什么功能&#xff1a;C中const成员函数的作用 前言C中const成员函数的作用总结 前言 在PX4的代码中的位置控制模块中&#xff0c;有这样一个成员函数 void getAttitudeSetpoint(vehicle_attitude_setpoint_s &attitude_setpoint) const;该函数的…...

QSNCTF-WEB做题记录

第一题&#xff0c;文章管理系统 来自 <天狩CTF竞赛平台> 描述&#xff1a;这是我们的文章管理系统&#xff0c;快来看看有什么漏洞可以拿到FLAG吧&#xff1f;注意&#xff1a;可能有个假FLAG哦 1&#xff0c;首先观察题目网站的结构和特征 这个一个文件管理系统&#x…...

UE引擎游戏加固方案解析

据VGinsights的报告&#xff0c;近年来UE引擎在过去几年中市场占比显著增长&#xff0c;其中亚洲市场增幅达到了30%&#xff0c;随着UE5的推出和技术的不断进步&#xff0c;UE引擎在独立开发者和移动游戏开发中的应用也在逐步增加。 UE引擎的优势在于强大的画面表现与视觉特效…...

统计函数运行时间的python脚本

这是一个统计函数运行时间的实用脚本&#xff0c;其中用到了函数的嵌套、链式传输参数&#xff0c;以及修饰器。 import time# 定义一个装饰器timer&#xff0c;用于计算被装饰函数的运行时间 def timer(func):print("执行了timer")def wrapper(*args, **kwargs):st…...

大模型WebUI:Gradio全解11——使用transformers.agents构建Gradio UI(3)

大模型WebUI&#xff1a;Gradio全解11——使用transformers.agents构建Gradio UI&#xff08;3&#xff09; 前言本篇摘要11. 使用transformers.agents构建Gradio UI11.3 创建和使用工具Tools11.3.1 默认工具箱与load_tool11.3.2 创建新工具11.3.3 管理代理的工具箱toolbox11.3…...

spring boot知识点5

1.如何你有俩套配置环境&#xff0c;运行时如何选择 如果有俩套配置环境&#xff0c;则需要三个yml application.yml 用于配置你用那个配置环境 application-dev.yml 用于开发配置环境 application-prod.yml 用于发布配置环境 spring:profiles:active: prod # 指定当前激…...

【C++】面向对象的三大特性

面向对象编程三大核心特性&#xff1a;封装、继承和多态。 1. 封装 封装指的是将数据和操作这些数据的方法绑定在一起&#xff0c;形成一个对象&#xff0c;并且隐藏对象的内部实现细节&#xff0c;只暴露必要的接口。封装的目的是保护数据&#xff0c;确保外部代码不能直接访…...

Docker构建时,设定默认进入的工作目录的方法

在 Docker 中,你可以通过不同的方式来设定容器默认进入的目录,以下针对不同场景分别介绍具体方法: 1. 使用 Dockerfile 设定工作目录 如果你是通过构建镜像的方式来运行容器,那么可以在 Dockerfile 中使用 WORKDIR 指令来设置容器启动时的默认工作目录。以下是具体步骤:…...

DeepSeek等大模型功能集成到WPS中的详细步骤

记录下将**DeepSeek功能集成到WPS中**的步骤&#xff0c;以备忘。 1. 下载并安装OfficeAI插件 访问OfficeAI插件下载地址&#xff1a;https://www.office-ai.cn/&#xff0c;下载插件&#xff08;目前只支持windows系统&#xff09;。 注意&#xff0c;有两个插件&#xff0…...

教学资料档案管理系统

本系统构建 JAVA 体系的后端系统&#xff0c;围绕以安全&#xff0c;可靠&#xff0c;高速&#xff0c;健壮&#xff0c;易于扩展为目标的方向进行开发&#xff0c;在阿里等开源库的基础上实现提供教学资料档案的管理系统的后端接口的微服务架构系统。 功能包含&#xff1a;系…...

linux core分析---TLS读取异常

文章目录 TLS概念core 线程调用栈查看堆栈: bt查看所有线程堆栈:core分析:锁分析代码修改:thread8 f 4 (第四层堆栈) jcallback.c:186**thread10 f4 SynStack.cpp:1175tl_send_message 加锁修改tls_table1 socket_tab加锁保护2 增加tls_table 中buse的使用3 tls_tl_read_mes…...

SpringBoot 排除一些包的注入

文章目录 需求一、使用 ComponentScan 需求 在系统迭代的过程中&#xff0c;有一些 Controller 大批量的不再使用&#xff0c;或者有一些接口我们不想再提供给外界 一、使用 ComponentScan SpringBootApplication(scanBasePackages "com.zrb.excludeSomePkg") Comp…...

PHP Composer:高效项目依赖管理工具详解

PHP Composer:高效项目依赖管理工具详解 引言 随着Web开发领域的不断扩展,项目的复杂性也在逐渐增加。为了提高开发效率,减少重复劳动,依赖管理工具应运而生。其中,PHP的Composer成为了开发者们的首选。本文将详细介绍PHP Composer的功能、使用方法以及在实际开发中的应…...

第四届图像、信号处理与模式识别国际学术会议(ISPP 2025)

重要信息 大会官网&#xff1a;www.icispp.com 大会时间&#xff1a;2025年3月28日-30日 大会地点&#xff1a;南京 简介 由河海大学和江苏大学联合主办的第四届图像、信号处理与模式识别&#xff08;ISPP 2025) 将于2025年3月28日-30日在中国南京举行。主要围绕图像信号处…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...

Python常用模块:time、os、shutil与flask初探

一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...