Docker linux 离线部署springcloud

作者:qq_17152035日期:2025/10/2

**搭建dcoker环境

**1. 首先在有网络的机器上下载Docker的离线安装包:

- 访问 https://download.docker.com/linux/static/stable/x86\_64/

- 下载对应版本的 docker-<version>.tgz 文件

**2. 将下载的安装包传输到目标Linux机器上(可以使用U盘或其他存储设备)

**3. 在目标机器上执行以下命令:

```bash

# 解压安装包

tar xzvf docker-<version>.tgz

# 将docker二进制文件复制到系统目录

sudo cp docker/* /usr/bin/

# 创建docker服务

sudo groupadd docker

sudo useradd -g docker docker

# 创建docker配置文件

sudo mkdir -p /etc/docker

sudo touch /etc/docker/daemon.json (没外网 删除 不然可能会启动不了)

# 创建systemd服务文件

sudo mkdir -p /etc/systemd/system

sudo touch /etc/systemd/system/docker.service

**4. 编辑docker.service文件,添加以下内容:

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network-online.target docker.socket firewalld.service

Wants=network-online.target

Requires=docker.socket

[Service]

Type=notify

ExecStart=/usr/bin/dockerd

ExecReload=/bin/kill -s HUP $MAINPID

TimeoutSec=0

RestartSec=2

Restart=always

StartLimitBurst=3

StartLimitInterval=60s

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

TasksMax=infinity

[Install]

WantedBy=multi-user.target

**5. 启动Docker服务:

```bash

# 重新加载systemd配置

sudo systemctl daemon-reload

# 确保docker.socket服务存在

sudo touch /etc/systemd/system/docker.socket

# 编辑docker.socket文件,添加以下内容:

[Unit]

Description=Docker Socket for the API

PartOf=docker.service

[Socket]

ListenStream=/var/run/docker.sock

SocketMode=0660

SocketUser=root

SocketGroup=docker

[Install]

WantedBy=sockets.target

# 启用并启动服务

sudo systemctl enable docker.socket

sudo systemctl enable docker.service

sudo systemctl start docker.socket

sudo systemctl start docker.service

(这里报错执行6启动成功执行7)或者直接删掉daemon.json 文件重新start

```

  1. **修改 daemon.json

# 创建目录

mkdir -p /etc/docker

# 复制内容 (不通外网没啥用)

tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": [

"http://hub-mirror.c.163.com",

"https://mirrors.tuna.tsinghua.edu.cn",

"http://mirrors.sohu.com",

"https://ustc-edu-cn.mirror.aliyuncs.com",

"https://ccr.ccs.tencentyun.com",

"https://docker.m.daocloud.io",

"https://docker.awsl9527.cn"

]

}

EOF

# 重新加载配置

systemctl daemon-reload

# 重启Docker

systemctl restart docker

**7 . 验证安装:

```bash

docker --version

docker info

```

- 使用 `systemctl status docker.service` 查看详细错误信息

**安装mysql

**1.在有网络的服务器上拉取镜像包

docker pull mysql:8.0.31

**2. 打包 为tar上传到目标服务器

docker save -o /home/mysql-8.0.27.tar mysql:8.0.27

**3. 传输装载

docker load -i /home/mysql/mysql-8.0.27.tar

  1. **挂载启动

docker network create my-network (创建个docker网络)

创建挂载目录

mkdir -p /home/mysql/log

mkdir -p /home/mysql/data

mkdir -p /home/mysql/conf

docker run \

--name mysql -p 3306:3306 \

--network my-network \

-v /home/mysql/log:/var/log/mysql \

-v /home/mysql/data:/var/lib/mysql \

-v /home/mysql/conf:/etc/mysql/conf.d \

-e MYSQL_ROOT_PASSWORD='xxxx' \

-d mysql:8.0.27

#设置root账号密码和版本号 成功会返回一串编码

密码xxxx

56ecdc8667fa807506988884deaaa6abd824a9d0995da77bbfc4782bfcac54e9

  1. **连接验证

Docker ps / docker images

登录

docker exec -it mysql mysql -uroot -xxxx

**安装jdk

**1. jdk 在线 下载打包 离线包

docker pull openjdk:8-jdk

docker save -o openjdk8.tar openjdk:8-jdk

**2. 上传 目标服务器并 加载

docker load -i openjdk8.tar

  1. **验证

Docker images;

**安装docker-compose

_# 赋予执行权限

sudo chmod +x /usr/local/bin/docker-compose

_# 验证安装

docker-compose --version

输出类似 **Docker Compose version v2.x.x 即成功。

**Nacos 启动

docker logs <nacos容器名或ID>

docker pull nacos/nacos-server:v2.2.3

docker save -o /home/nacos/nacos.tar nacos/nacos-server:2.2.0

docker load -i xx

mkdir -p /opt/nacos/logs /opt/nacos/data

docker run -d \

--name nacos \

--network my-network \

-p 8848:8848 \

-v /opt/nacos/logs:/home/nacos/logs \

-v /opt/nacos/data:/home/nacos/data \

-e MODE=standalone \

nacos/nacos-server:latest

**使用 Docker Compose 启动 Nacos (推荐) 用这个

创建 **docker-compose.yml 文件:

version: '3'

services:

nacos:

image: nacos/nacos-server:latest

container_name: cmhs-nacos

environment:

MODE: standalone # 注意这里改为 key: value 格式

ports:

- "8848:8848"

- "9848:9848"

volumes:

- ./logs/:/home/nacos/logs

- ./nacos/data:/home/nacos/data

networks:

- my-network

restart: always

networks:

my-network:

driver: bridge

name: my-network

external: true

然后运行:

docker-compose up -d

常用命令

移除镜像docker rm -f cmhs-nacos

停止并清理由 **docker-compose up 或 **docker-compose start 启动的所有容器、网络、卷和其他资源

docker-compose down

启动后登录后台添加nacos 配置yml文件

docker-compose up --build -d

**启动gateway模块

/home/lz/cmhs-gateway/ 目录下文件

docker-compose.yml

dockerfile

nacos.env

**Dockerfile内容:

# 基础镜像

FROM openjdk:8-jdk

# author

MAINTAINER cmhs

# 挂载目录

VOLUME /home/cmhs

# 创建目录

RUN mkdir -p /home/cmhs

# 指定路径

WORKDIR /home/cmhs

# 复制jar文件到路径

COPY ./jar/cmhs-gateway.jar /home/cmhs/cmhs-gateway.jar

# 启动网关服务

ENTRYPOINT ["java","-Xms64m","-Xmx1024m","-jar","cmhs-gateway.jar"]

**docker-compose.yml内容:

version : '3.8'

services:

cmhs-gateway:

image: cmhs-gateway:latest

container_name: cmhs-gateway

restart: always

mem_limit: 1024m

build:

context: ./

dockerfile: dockerfile

env_file:

- nacos.env

volumes:

- /etc/localtime:/etc/localtime:ro

- ./logs:/opt/logs/cmhs-gateway

networks:

- my-network

networks:

my-network:

name: my-network

external: true

**nacos.env文件内容:

TZ=Asia/Shanghai

spring.cloud.nacos.discovery.server-addr=cmhs-nacos:8848

spring.cloud.nacos.discovery.username=nacos

spring.cloud.nacos.discovery.password=nacos

spring.cloud.nacos.config.server-addr=cmhs-nacos:8848

spring.cloud.nacos.config.username=nacos

spring.cloud.nacos.config.password=nacos

spring.profiles.active=dev

logging.level.root=debug

docker build -t cmhs-gateway .

docker-compose up -d

其他模块大同小异

docker-compose down _# 停止并删除旧容器

docker-compose up -d _# 重新创建

docker-compose up --build -d

**Yfc-admin&&yfc-harbor模块

docker-compose.yml

nacos.env

yfc-admin(文件夹)

yfc-harbor(文件夹)

**docker-compose.yml:

version : '3.8'

services:

cmhs-yfc-admin:

image: cmhs-yfc-admin:latest

container_name: cmhs-yfc-admin

restart: always

mem_limit: 2048m

build:

context: yfc-admin

dockerfile: dockerfile

env_file:

- nacos.env

volumes:

- /etc/localtime:/etc/localtime:ro

- ./yfc-admin/logs:/opt/logs/cmhs-yfc-admin

networks:

- my-network

cmhs-yfc-harbor:

image: cmhs-yfc-harbor:latest

container_name: cmhs-yfc-harbor

restart: always

mem_limit: 2048m

build:

context: yfc-harbor

dockerfile: dockerfile

env_file:

- nacos.env

volumes:

- /etc/localtime:/etc/localtime:ro

- ./yfc-harbor/logs:/opt/logs/cmhs-yfc-harbor

networks:

- my-network

networks:

my-network:

external: true

docker build -t cmhs-yfc-admin .

docker build -t cmhs-yfc-harbor .

docker-compose up -d (同时构建两个jar)

**编写 d ockerfile文件

**1.文件路径 /home/ lz / cmhs-

**2.创建文件 touch Dockerfile

**3.编辑文件内容

# 基础镜像

FROM openjdk:8-jdk

# author

MAINTAINER cmhs

# 挂载目录

VOLUME /home/cmhs

# 创建目录

RUN mkdir -p /home/cmhs

# 指定路径

WORKDIR /home/cmhs

# 复制jar文件到路径

COPY ./jar/cmhs-gateway.jar /home/cmhs/cmhs-gateway.jar

# 启动网关服务

ENTRYPOINT ["java","-Xms64m","-Xmx1024m","-jar","cmhs-gateway.jar"]

  1. **构建镜像

docker build -t sunplus:1.0 . #最后的. 表示当前所在目录执行不可缺少

查看是否成功

Docker images;

  1. **启动java jar包

docker run -d \

-v /home/sunplus:/app \ #挂载宿主机位置 实际启动的是/home/sunplus/下的jar包

-v /home/sunplus/logs:/app/logs \ #挂载宿主机日志位置

--name sunplus \

--network my-network \ #设置与mysql同一网络

-p 8089:8089 \ #端口

sunplus:1.0 #容器名称版本号

说明:

--network my-network \ #设置与docker容器里的mysql同一网络

application-pr.yml 数据库连接用myql docker容器名称代替ip

url: jdbc:mysql://mysql:3306/database?

logback配置路径配置为容器路径

<property name="log.path" value="/app/logs" />
  1. **查看启动日志

docker logs -f <容器名称># 实时跟踪日志(类似 tail -f)

并查看宿主机目录文件是否挂载成功 /home/sunplus/logs

**安装nginx

  1. **创建 文件目录

mkdir -p /home/nginx/html/

mkdir -p /home/nginx/conf/

**2.创建编辑配置文件

touch nginx.conf

**vim nginx.conf;

以下为配置内容根据需求修改:

user nginx;

worker_processes 8;

error_log /var/log/nginx/error.log notice;

pid /var/run/nginx.pid;

events {

worker_connections 1024;

}

http {

include /etc/nginx/mime.types;

default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;

keepalive_timeout 600;

gzip on;

gzip_min_length 1024;

client_body_buffer_size 400m;

client_max_body_size 800m;

underscores_in_headers on;

upstream gatewaysever {

least_conn;

server cmhs-gateway:8080 weight=1 max_fails=3 fail_timeout=30;

}

map $http_upgrade $connection_upgrade {

default upgrade;

'' close;

}

#websocket

upstream websocketserver {

server cmhs-gateway:8080;

}

include /etc/nginx/conf.d/*.conf;

}

**/conf.d/default.conf

server {

listen 8001;

listen [::]:8001;

server_name localhost;

# apk安装包

location /apk/ {

root /usr/share/nginx/html/apk;

autoindex on;

}

# 药房 pc端 前端资源

location / {

root /usr/share/nginx/html/yfc-pc/dist;

index index.html index.htm;

# 处理静态资源缓存

try_files $uri $uri/ /index.html;

}

# 匹配静态资源(图片/CSS/JS等)

location ~* \.(gif|jpg|jpeg|png|svg|css|js|flv|ico|swf)$ {

root /usr/share/nginx/html/yfc-pc/dist;

expires max;

access_log off;

}

# 匹配 HTML 文件

location ~* \.(htm|html)$ {

root /usr/share/nginx/html/yfc-pc/dist;

expires -1;

add_header Cache-Control "no-store";

add_header Pragma "no-cache";

}

# 药房 pda端 前端资源

location /pharmacy/pda/ {

alias /usr/share/nginx/html/yfc-pda/dist/;

if ($request_uri ~ \.(gif|jpg|jpeg|png|svg|css|js|flv|ico|swf)(.*)) {

expires max;

}

if ($request_filename ~* .*\.(?:htm|html)$) {

expires -1;

add_header Cache-Control 'no-store';

}

try_files $uri $uri/ /index.html /usr/share/nginx/html/yfc-pda/dist/index.html;

index index.html index.htm;

}

# 后端服务统一网关

location /manager/ {

proxy_pass http://gatewaysever/;

proxy_set_header host $host;

proxy_set_header x-real-ip $remote_addr;

proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

}

**3.加载上传的nginx离线包

docker load -i xx.tar

  1. **创建容器 挂载启动

docker run -d \

--name cmhs-nginx \

--network my-network \

-p 9110:8001 \

-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \

-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \

-v /home/nginx/html/yfc-pc/dist:/usr/share/nginx/html/yfc-pc/dist \

-v /home/nginx/html/yfc-pda/dist:/usr/share/nginx/html/yfc-pda/dist \

-v /home/nginx/html:/usr/share/nginx/html \

cmhs-nginx:1.0

**安装redis

  1. **在有网络的服务器上拉取docker离线压缩包
  2. **上传到目标服务器并加载

docker load -i xx.tar

  1. **启动容器

docker run -d \

--name cmhs-redis \

--network my-network \

-p 6379:6379 \

cmhs-redis:1.0

密码自己设置

**一些用到的命令

首先停止并删除现有容器(保留数据卷)

docker stop sunplus

docker rm sunplus

删除镜像 docker rmi <IMAGE_ID>

docker build -t sunplus:1.0 .

docker images

Docker ps

Docker logs -f 容器名

chmod 755 xx 授权

docker restart sunplus 重启容器

查看容器ip

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名

验证容器是否在指定网络中

docker inspect 容器名 | grep NetworkMode

容器被删除(docker rm nacos)

需要重新执行完整的 docker run 命令

元数据(包括挂载卷配置)会被清除,必须重新运行 docker run 并指定 -v

需要修改挂载路径或其他参数

例如,想将 /opt/nacos/data 改为 /data/nacos,必须重新 docker run

sudo netstat -tulnp 查看端口

docker rmi -f abc123def456 _# 强制删除(慎用)

cp file.txt /path/to/directory/newfilename.txt

mv oldname.txt newname.txt

导入数据库

docker exec -i mysql mysql -uroot -p123456

databasename < /home/java/xx.sql

rm -r 逐级删除非空目录(谨慎使用)

rm -rf

rm file 删除文件

mkdir -p 创建多级目录

touch xx.file 创建文件

systemctl status docker.service

sudo dockerd --debug

查看后100行日志

sudo journalctl -u docker --no-pager -n 50

sudo journalctl -u docker --no-pager -n 100

**安装 containerd

**1. 确认是否已安装 containerd

bash

containerd --version

如果返回版本号(如 **containerd 1.6.28),说明已安装但服务未配置。

如果提示 **command not found,说明完全未安装。


**2. 安装 containerd

**Ubuntu/Debian

bash

sudo apt updatesudo apt install -y containerd.io

**CentOS/RHEL

bash

sudo yum install -y containerd.io

**3. 生成并启用 systemd 服务

**(1)创建服务单元文件

bash

sudo mkdir -p /usr/local/lib/systemd/systemsudo nano /usr/local/lib/systemd/system/containerd.service

粘贴以下内容:

[Unit]

Description=containerd container runtimeDocumentation=https://containerd.ioAfter\=network.target local-fs.target

[Service]

ExecStartPre=-/sbin/modprobe overlayExecStart=/usr/bin/containerdRestart=alwaysRestartSec=5Delegate=yesKillMode=processOOMScoreAdjust=-999LimitNOFILE=1048576LimitNPROC=infinityLimitCORE=infinity

[Install]

WantedBy=multi-user.target

**(2)启用并启动服务

bash

sudo systemctl daemon-reload

sudo systemctl enable --now containerd

sudo systemctl status containerd


**4. 配置 containerd

生成默认配置文件:

bash

sudo mkdir -p /etc/containerd

containerd config default | sudo tee /etc/containerd/config.toml

修改配置(如需调整):

bash

sudo nano /etc/containerd/config.toml

确保关键配置:

toml

[grpc]

address = "/run/containerd/containerd.sock"

重启服务:

bash

sudo systemctl restart containerd


**5. 验证安装

bash

sudo ctr images pull docker.io/library/hello-world:latestsudo ctr run docker.io/library/hello-world:latest test

如果成功运行,说明 **containerd 已正常工作。


**6. 关联 Docker(如果使用 Docker)

确保 Docker 配置指向正确的 **containerd.sock

bash

sudo nano /etc/docker/daemon.json

添加:

json

{

"runtimes": {

"containerd": {

"path": "/run/containerd/containerd.sock"

}

}}

重启 Docker:

bash

sudo systemctl restart docker

**修复containerd

**1. 确认 containerd 的安装位置

首先检查 **containerd 的实际安装路径:

bash

which containerd

bash

sudo find / -name "containerd" -type f 2>/dev/null

常见正确路径:

**/usr/bin/containerd(标准安装)

**/usr/local/bin/containerd(手动编译安装)


**2. 修复方案

**情况 1:containerd 未安装

如果 **which containerd 无输出,说明未安装:

bash

__# Ubuntu/Debian_sudo apt updatesudo apt install -y containerd.io

__# CentOS/RHEL_sudo yum install -y containerd.io

_# 验证安装

containerd --version

**情况 2:containerd 安装在非默认路径

如果 **containerd 存在但路径不是 **/usr/local/bin/containerd(例如 **/usr/bin/containerd):

bash

__# 创建符号链接(推荐)_sudo ln -s $(which containerd) /usr/local/bin/containerd

__# 或直接修改服务文件_sudo nano /usr/lib/systemd/system/containerd.service

将 **ExecStart=/usr/local/bin/containerd 改为实际路径:

ini

ExecStart=/usr/bin/containerd

然后重新加载 systemd:

bash

sudo systemctl daemon-reload

sudo systemctl restart containerd

**情况 3:手动安装但文件丢失

如果之前手动安装过 **containerd 但文件被删除:

bash

__# 重新下载二进制文件(以 v1.6.28 为例)_wget https://github.com/containerd/containerd/releases/download/v1.6.28/containerd-1.6.28-linux-amd64.tar.gzsudo tar Cxzvf /usr/local containerd-1.6.28-linux-amd64.tar.gz

__# 验证文件是否存在_ls -l /usr/local/bin/containerd


**3. 重建 systemd 服务文件

如果服务文件损坏,重新生成:

bash

sudo mkdir -p /usr/local/lib/systemd/systemsudo nano /usr/local/lib/systemd/system/containerd.service

粘贴以下内容:

ini

[Unit]Description=containerd container runtimeDocumentation=https://containerd.ioAfter=network.target local-fs.target

[Service]ExecStartPre=-/sbin/modprobe overlayExecStart=/usr/bin/containerdRestart=alwaysRestartSec=5Delegate=yesKillMode=processOOMScoreAdjust=-999LimitNOFILE=1048576LimitNPROC=infinityLimitCORE=infinity

[Install]WantedBy=multi-user.target

然后启用服务:

bash

sudo systemctl daemon-reload

sudo systemctl enable --now containerd


**4. 验证修复

bash

sudo systemctl status containerd

sudo ctr version _# 测试 containerd 功能

正常输出应显示:

containerd github.com/containerd/containerd v1.6.28 ...

**方法2:手动挂载 cgroups

临时解决方案(重启后失效):

sudo mkdir /sys/fs/cgroup/devices

sudo mount -t cgroup -o devices none /sys/fs/cgroup/devices

**确保用户有权限访问 Docker

Docker 默认需要 **root 或 **docker 用户组权限:

_# 将当前用户加入 docker 组

sudo usermod -aG docker $USER

_# 更新组权限(需重新登录或运行)

newgrp docker

__# 检查是否生效_groups

**⚠️ 重要:重新登录终端或重启生效

**5. 常见问题及解决

**(1) Containerd 未运行

Docker 依赖 **containerd

sudo systemctl status containerd

sudo systemctl start containerd

**禁用用户态代理(推荐)

编辑 Docker 配置文件 **/etc/docker/daemon.json

sudo nano /etc/docker/daemon.json

添加以下内容(如果文件不存在则新建):

json

{

"userland-proxy": false}

保存后重启 Docker:

sudo systemctl restart docker


Docker linux 离线部署springcloud》 是转载文章,点击查看原文


相关推荐


链表转置算法
C_lea10/2/2025

node(4)->node(3)->node(2)->node(1)->node(0)结果,但是运行的时候发现不正确,,这个会导致链表的next指针被修改了,那么n.next肯定指向不了真正的下一个对象。**思考步骤:**遍历一次就要形成一个新的转置链表,首先想到的就是。所以我们需要定义一个临时变量,保存链表的next内容。看上去很简单,整个遍历完毕后,就是。我们在遍历链表的时候肯定是这么来的。但是我们在上文遍历的情况下,设置了。最后输出的pre就是转置后的链表了。给出链表node,如何转置并输出。


华三交接机HCL模拟器搭建DHCP功能
cws20040110/1/2025

dhcp server ip-pool vlan10 创建基于接口VLAN10的地址池。通过dis dhcp server ip-in-use 或者用 dis arp。(10)PC_26、PC_30和PC_5都能通过DHCP自动获取IP地址。dis dhcp server ip-in-use 查看已分配地址。(2)在交换机分别创建VLAN 10、VLAN 20、vlan 30。dhcp server ip-pool vlan30 创建地址池。


Python学习历程——基础语法(print打印、变量、运算)
蓝桉~MLGT9/30/2025

本文介绍了Python基础语法中的print函数用法,适合有Java基础的快速入门。主要内容包括: print函数的基本语法和参数说明(sep间隔符、end结束符、file输出重定向) 多种打印方式:单对象、多对象、空行打印 格式化输出:f-string、.format()和%格式化 高级用法:输出重定向到文件/内存、缓冲控制、调试模板 特殊字符处理与数学函数结合使用 文章重点演示了print函数的各种参数组合和实际应用场景,如进度条显示、条件打印、调试输出等,并对比了不同格式化方法的差异。


卡尔曼滤波
不三不四୭2025/10/2

在动态系统的状态估计领域,卡尔曼滤波 (Kalman Filter) 作为一种最优线性滤波算法,具有里程碑式的地位。自 1960 年由鲁道夫・卡尔曼 (Rudolf E. Kalman) 提出以来,卡尔曼滤波已经广泛应用于导航、控制、信号处理、图像处理等众多领域。它的核心优势在于能够通过融合系统模型预测和传感器测量这两种不同来源的信息,提供最优的状态估计结果,特别适用于处理带有噪声的数据。​ 卡尔曼滤波的卓越性能源于其独特的递归结构,它不需要存储所有历史数据,而是通过不断更新当前状态估计,高效地


VB6 ADO没有轻量级内存数据库吗?类似SQLITE
专注VB编程开发20年2025/10/3

ACCESS数据库很方便,为什么不实现一个内存版的数据库?比如创建MDB时实际保存到内存区域,再用内存映射为文件句柄,然后就要吧进行读写操作了。不需要任何新的SQL等技术,唯一的区别就是把从硬盘读写变成内存读写,如果硬盘占用10MB,内存可以预分配50M空间,插入数据可以不断扩展虚拟文件的大小。只不过数据库文件锁也要做内存文件,基本不需要多用户访问。 abc.mdb , abc.ldb 不过现在硬盘也便宜了,怕高频访问掉速的话也可以用RAMDISK虚拟内存硬盘,或者使用SQLITE,SQL S


Python 的内置函数 anext
IMPYLH2025/10/4

Python 内建函数列表 > Python 的内置函数 anext 如果你熟悉 next() 函数,那么 anext 就是它的异步版本,专为异步迭代器(async for 循环)设计。随着 Python 异步编程(asyncio)的普及,anext 在协程(coroutine)环境下提供了更优雅的方式来获取异步迭代器的下一个值。 anext 的函数原型如下: async def anext(async_iterator): ''' 获取异步迭代器的下一数据项, 没


uniapp微信小程序安卓手机Touchend事件无法触发
一诺滚雪球2025/10/6

前言 在使用uniapp开发微信小程序时,需要做一个下拉功能,使用touch事件实现。实际情况出现了touchend事件无法触发的情况。 如何解决呢? 1. 解决方案 移动项目开发过程中,经常需要用到滑动的事件来处理一些效果。正常情况下,我们会通过  touchstart->touchmove->touchend  的过程来定义这个事件。这些事件的触发顺序是  touchstart, touchmove, touchmove ….. touchend。 绝大部分平板或手机是这样有序执行。但是以A


Spring Boot 实现微信登录,So Easy !
皮皮林5512025/10/7

前言 小程序登录在开发中是最常见的需求,哪怕小程序登录不是你做,你还是要了解一下流程,后续都要使用到openId和unionId,你需要知道这些是干什么的。 需求分析 点击登录会弹出弹窗,需要获取用户手机号进行登录。 图片 微信登录业务逻辑规则: 图片 思路说明 参考微信官方文档的提供的思路,官方文档: developers.weixin.qq.com/miniprogram… 微信官方推荐登录流程: 图片 注意点: • 前端在小程序集成微信相关依赖,调用wx.login获取临时登录


C# 泛型(Generic)
wjs20242025/10/9

C# 泛型(Generic) 泛型是C#编程语言中一种强大的功能,它允许我们在不具体指定数据类型的情况下编写代码。这种设计模式使得代码更加通用、灵活,并且可以避免类型转换的错误。下面将详细探讨C#泛型的概念、应用场景、实现方法以及相关最佳实践。 泛型的概念 在C#中,泛型允许我们定义可以支持多种数据类型的类或方法。这种类型参数化的机制使得代码更加通用,从而减少了类型转换的需要,并提高了代码的复用性。 泛型的好处 代码复用:通过泛型,我们可以定义一次模板,然后在多个地方复用。


Ling-1T:蚂蚁百灵如何以“非思考”策略,开启万亿参数效率新篇章?
墨风如雪2025/10/10

2025年10月9日,AI世界再次被一颗“重磅炸弹”点燃。蚂蚁集团百灵大模型团队正式发布了其Ling 2.0系列的首款旗舰模型——Ling-1T。这不仅仅是一个拥有万亿参数的通用大语言模型,它更代表着蚂蚁集团在大模型设计理念上的一次大胆创新和实践突破。它已全面开源,正等待着全球开发者共同探索其无限潜力。 “非思考”定位:速度与精准的完美结合 初听“非思考模型”,你或许会感到好奇。这并非 Ling-1T 不具备推理能力,而是蚂蚁集团对大模型家族的一种策略性划分。在百灵模型矩阵中,“Ling系列”

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0