如何在Windows上使用Docker搭建PHP开发环境
前言
在本地搭建开发环境我好像没几年就要折腾一次,因为本地开发电脑使用的是windows,早些年的时候,用过很多类似WAMP之类的东西,但最终都有或多或少不满意的地方,前两年的时候,还折腾过WSL,但也是有这样那样的问题,不过后来终于是win版宝塔更新了, 基本能和linux版的保持一致了,虽然有些东西在windows上要不没有,要不用不了;
最近又换了电脑,本地的环境需要重新配置,借此机会,其实我一直想试试docker,前两年折腾wsl2的时候,发现其实wsl2的io已经没有那么差了。 而且Docker Desktop for windows 也已经支持基于wsl2来创建使用了。
(至于为什么要换,因为我老机器上跑的nginx好像内存泄露了一样,启动四到五个小时候内存占用就会跑到90%以上;启动一天,远程都连不上,鼠标都不会动了;老机器的环境是win版宝塔)
所以,花了几天的时间,现在终于是弄通了,本文记录下流程,以做沉淀。
安装Docker Desktop
Docker Desktop: The #1 Containerization Tool for Developers | Docker
访问上述链接即可下载,访问不了的话可能需要想想办法;
至于具体安装, 这个网上有很多教程,不是本文要记录的重点,所以暂且路过,不过有一点要说明的是,要使用wsl2;wsl2要求应该是win10某个版本以上,目前你能下载到的新一点的win10镜像肯定都是没问题的;wsl2的启用可能也会有些小步骤,这个也建议去看下资料看看怎么安装使用,本文略过;
选择镜像
假设上面的必备条件都已经准备妥当。
接下来就是选择镜像来启动了, 其实在一开始我是打算全部单独启动容器,比如我需要用到的php,mysql,nginx等等,我原计划打算一个php版本就启动一个容器,然后以后需要的时候就再用需要的php版本镜像再启动一个容器就好了;
但实际操作中,需要自己修改调试的东西还是很多,不仅要先理解docker的基本语法来进行端口映射和卷映射,还需要了解在nginx中怎么配置才能将请求转发到php进程进行处理,这些坑其实我都已经踩过了,但最后为什么放弃呢?
因为在我的实际开发中,虽然并不是外包公司,但是内部其实还是有很多大大小小的项目的,所以需要经常创建站点部署新项目,每配置一个新项目,我就需要去修改nginx的配置文件来配置代理,中间也记录了一些操作笔记,也自己尽量划分好了文件夹等等来实现nginx.conf自动加载某个目录下的文件来实现快速的新增站点,但这个问题解决完后又发现,在一些项目中,还需要为php安装特定扩展等等,我还想把php的配置文件映射到本地来随时修改并保证删除容器也不会对我做过的修改造成影响等等,更不用说还有mysql等等,这一系列操作,可能熟练了,或者专业的运维人员应该问题不大,但让我来一个个去配置确实很难受。
后来我还试过利用docker-compose来编排服务依赖等等,在某种程度上来说,确实减少了一些操作步骤等,但我在对docker不是很熟练的情况下, 写了很多很多个版本,都没有一次性的成功启动并完美运行,前前后后也是折腾了两三天,到了最后还是绕不过手动配置站点以及其它的问题。再加上,需要端口映射,启动过的容器好像是不能修改端口映射了。 这就很烦,网络是host模式我这边仅仅成功了一次,之后就直接失灵再也没正常过了;
所以,最后最后最后,我还是妥协了,我选择使用宝塔;
当然,我这次选择使用docker版的宝塔,相比于win版宝塔,linux版的宝塔要好用的多;
使用宝塔镜像
其实在以前我是知道在docker hub上是有大佬制作过baota镜像的,但是因为当时不知道docker具体指令是干什么用的,一知半解下启动的容器后来因为不懂把卷给删了,自己可算是把自己给坑到哭了;
这次发现宝塔官方有提供docker镜像,看了下版本也还算新(8.05);于是就直接拿来使用了;
拉取镜像: docker pull btpanel/baota:lib
,我建议拉lib标签的,你可以先看一下官方的docker hub介绍: hub.docker.com/r/btpanel/baota ,介绍里给的例子是拉取lnmp标签, 本身做php开发确实要这个就刚刚好,但是我启动后,发现里面的nginx,mysql,php什么的,都是挂掉的, 反正是不能用。试了两次都不行,最后是卸载了重新安装才可以,所以与其如此,我觉得直接拉取lib标签的镜像就好了,启动进入后自己需要什么再单独安装吧;
启动容器
docker run --name baota -v E:/www/wwwroot:/www/wwwroot -v E:/www/mysql_data:/www/server/data -v E:/www/vhost:/www/server/panel/vhost -p 22:22 -p 443:443 -p 80:80 -p 888:888 -p 8888:8888 -p 3306:3306 --restart=unless-stopped -d btpanel/baota:lib
上面是我的指令,简单解释下:
--name
是给容器起名,我这里就起做baota了;
-v
是卷映射,:
符号作为分隔,前面的是你本地的路径,后面的是容器内的实际路径,映射分几种不同的模式,我这里就是把本机(windows)下的目录映射到了容器里的具体路径,比如这里的wwwroot目录,做完映射就实现了代码在我本地宿主机上,我可以随时用windows来编辑修改;最重要的是不会随着容器删除等对我的代码造成影响;以上映射的三个目录也是遵循官方说明来做的, 一个站点目录,一个mysql数据目录,一个是虚拟域名的配置目录;
-p
是端口映射,因为我本地测试给容器使用host网络模式失败,所以最后只能采用bridge模式,bridge模式就必须做端口映射了,不然本地可能就访问不了你容器内的服务了,语法上,同样是:
做分隔,前面是本地(宿主机)端口,后面是容器内具体服务的端口,例如我这里有80(nginx),8888(该宝塔镜像面板默认端口),以及mysql等等;按需做映射,或者如果你可以使用host模式,就不需要做映射了,但是要注意host模式下,是直接占用了宿主机的端口的,要注意这些端口是不是已经被占用;
--restart=unless-stopped
这个意思是仅在非正常停止的情况下自动重启容器,也有其它选项,可自行查询按需配置
-d
表示在后台运行,我想大概就是守护模式运行一个意思;
btpanel/baota:lib
这个是镜像名称,要指定使用哪个镜像来启动容器;
一般是可以正常启动的,启动后访问 http://localhost:8888/btpanel 就可以进入后台了,这个地址是官方镜像默认的地址,你可以自己使用docker进入容器,输入bt
就可以调出宝塔的指令,可自行进行修改端口,路径,账号,密码等;
进入后版本为8.05,当前最新版本为8.20,我试过直接升级,目前没发现什么问题;但是要注意,你在容器中做的操作,除了映射到本地的文件夹外,其它内容都会随着容器的删除等等丢失!(该问题可以考虑先启动容器后把环境配置到自己满意的程度,然后把容器打包为新的镜像后期备用,同时镜像也是可以保存为文件的,可以保存为文件方便更换设备时使用)
附加:使用docker中的php来配置vscode中的php验证等
环境已经使用docker搭建了,其它一些依赖php的服务如果再让去本地再装一个php环境就本末倒置了,这点也有解决方案,但是有没有未知的问题我还不清楚;后续使用中如果有发现我再更新说明;
创建php.bat文件
自己找个目录,比如我放在了E:/www目录下,新建php.bat文件,命名随意;
内容如下,请根据备注释义按需修改:
@echo offrem 启用延迟变量扩展setlocal enabledelayedexpansionrem 设置 Docker 容器名称和 PHP 路径set CONTAINER_NAME=bt82lnmprem 设置php在docker中的执行路径set PHP_PATH=phprem 设置Windows映射盘符set WIN_DRIVE=E:\rem 设置要替换为的windows盘符内容set WIN_DRIVE_REPLACE=\rem 原始文件路径set FILE_PATH=%1if exist "%FILE_PATH%" (rem 将 Windows 路径转换为容器内的路径set "FILE_PATH=!FILE_PATH:%WIN_DRIVE%=%WIN_DRIVE_REPLACE%!"rem 将 Windows 路径转换为linux的路径set FILE_PATH=!FILE_PATH:\=/!)rem 使用 Docker 容器中的 PHP 运行传递的 PHP 文件docker exec %CONTAINER_NAME% %PHP_PATH% !FILE_PATH!rem 结束局部化变量的作用域endlocal
以上命令因为有注释,所以不过多解释,其中有个修改路径的操作,是因为我vscode中安装了code runner插件, 经常直接在php文件中执行某行代码测试用,这一块儿代码专门针对不能使用code runner的问题进行的处理;
配置php路径等
如上,创建完php.bat文件后,它的路径假如是这样: E:/www/php.bat
那么在vscode的配置文件中,路径就直接这样写: E://www//php.bat
,配置完后可以测试一下是否可用
打包容器为镜像
docker commit bt82lnmp baota
bt82lnmp是新镜像名称,baota是当前容器的名称;
保存镜像为文件
docker save -o bt82lnmp.tar bt82lnmp
bt82lnmp.tar是文件名称,可以带上路径,像我这样不带的话,那就看当前命令行是在哪个目录下,保存好的文件就直接在这个目录下了,后面的bt82lnmp是镜像名称;
(PS:打包格式好像必须是.tar)
加载镜像文件
docker load -i PATHFILE
在其它机器上加载镜像文件,这里的PATHFILE自行更换,填写你镜像.tar文件的具体路径
结语
至此,基本流程全部结束,间断的折腾了近一周,写文章写了快两个小时,写到后边的时候有些内容已经没有心思写的更详细了。但我总体看了下,基本流程应该已经没问题了;除了可能在实际操作中会碰到的一些乱七八糟的问题,但是基本都可以搜索解决;
相关文章:
如何在Windows上使用Docker搭建PHP开发环境
前言 在本地搭建开发环境我好像没几年就要折腾一次,因为本地开发电脑使用的是windows,早些年的时候,用过很多类似WAMP之类的东西,但最终都有或多或少不满意的地方,前两年的时候,还折腾过WSL,但…...
java 单例模式
Java中实现单例模式的常见方式有两种:懒汉式和饿汉式。以下是这两种方式的简单示例: 饿汉式 饿汉式单例模式在类加载时就完成了实例的初始化,以空间换时间,确保了实例的唯一性。 public class Singleton {// 在自己内部定义自己…...
爬虫 属性 方法
在Python中,爬虫常用于从网页上抓取数据。BeautifulSoup是一个流行的库,用于从HTML或XML文件中提取数据。它创建了一个解析树,方便你从文档中查找、修改或导航数据。 安装BeautifulSoup 首先,你需要安装BeautifulSoup和lxml&…...
HEX文件
什么是hex文件 以*.hex为后缀的文件我们称之为HEX文件。hex是intel规定的标准,hex的全称是Intel HEX,此类文件通常用于传输将被存于ROM或EEPROM中的程序和数据。是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。HEX的英语原始意思是16进制…...
人机融合的智能操作系统
操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。它的职责常包括对硬件的直接监管、对各种计算资源(如内存、处理器时间等)的管理、以及提供诸如…...
数据结构之二叉树概念
数据结构之二叉树 二叉树简介分类普通二叉树平衡二叉树满二叉树二叉搜索树(二叉排序树、二叉查找树),平衡二叉树红黑树 B树类型B树(B-树、B_树)B树B*树 二叉树 简介 二叉树(Binary Tree) :是一种非常重要…...
Linux源码阅读笔记08-进程调度API系统调用案例分析
kthread_create_on_node kthread_create_on_node函数功能:指定存储节点创建新内核线程。源码如下: 操作实战 #include <linux/module.h> #include <linux/pid.h> #include <linux/sched.h> #include <linux/kthread.h> #inclu…...
短视频抓取:成都柏煜文化传媒有限公司
短视频抓取:技术挑战、法律边界与未来趋势 随着移动互联网的迅猛发展,短视频平台如雨后春笋般涌现,成为现代人生活娱乐的重要组成部分。然而,在海量短视频内容中,如何高效、准确地抓取目标视频,成为了一个…...
proto的前后端使用
首先定义一个input.proto文件 内容如下 syntax "proto3";message InputData {int32 UserId 1; // 将 number 改为 int32 或 int64string UserInput 2;string DrunkState 3; }message ResponseData {string AIResponse 1;string prompt 2;string emoti…...
华为解决固态硬盘致命弱点:延长30~50%的SSD寿命
如今的SSD容量越做越大,企业级SSD容量已达30TB、60TB的、甚至120TB。但SSD寿命一直是“致命伤”,越大容量的盘,出现故障后,丢失的数据就越多。 近日, 华为数据存储发文,揭开华为全闪分布式存储让SSD大盘更“…...
登录验证码高扩展性设计方案
登录验证码高扩展性建设方案 本文分享了一种登录验证码高扩展性的建设方案,通过工厂模式策略模式,增强了验证码服务中验证码生成器、验证码存储器、验证码图片生成器的扩展性,实现了服务组件的多样化,降低了维护成本 登录验证码高…...
Spring MVC数据绑定和响应——数据回写(一)普通字符串的回写
接下来通过HttpServletResponse输出数据的案例,演示普通字符串的回写,案例具体实现步骤如下。 1、创建一个数据回写类DataController,在DataController类中定义showDataByResponse()方法,用于测试在Spring MVC中普通字符串的回写…...
怎样才能更好地保护个人账号的安全
怎样才能更好地保护个人账号的安全 保护个人账号安全是网络安全的重要组成部分,以下是一些有效的措施来增强账号的安全性: 1. 使用强密码 复杂性:创建包含大小写字母、数字和特殊字符的密码。长度:密码至少应有12个字符长。唯一…...
react native优质开源项目
React Native 是一个非常流行的用于构建跨平台移动应用程序的框架,开源社区贡献了许多优质的项目和库。以下是一些备受认可的 React Native 开源项目,适合用来学习和参考: ### 1. **React Native Elements** [React Native Elements](https:…...
速盾:海外cdn有哪些优缺点呢?
海外 CDN(内容分发网络)是一种通过在全球多个节点上分布内容来加速网站访问速度的服务。它通过将网站的静态内容缓存到全球各地的服务器上,使用户可以从最近的服务器获取内容,从而提高网站的响应速度和用户体验。然而,…...
Unity Shader 软粒子
Unity Shader 软粒子 前言项目Shader连连看项目渲染管线设置 鸣谢 前言 当场景有点单调的时候,就需要一些粒子点缀,此时软粒子就可以发挥作用了。 使用软粒子与未使用软粒子对比图 项目 Shader连连看 这里插播一点,可以用Vertex Color与…...
nextTick的应用和原理理解
一.代码的理解 <template><div id"app"><div></div><button click"fn" ref"box"> {{ name }}</button></div> </template><script> export default {data: function () {return {n…...
.Net Core 微服务之Consul
目录 一、微服务架构 vs 单体架构 1. 单体架构介绍 2. 微服务架构介绍 3. 微服务架构 vs 单体架构的区别 4. 适用场景和选择 4.1 微服务架构的适用场景和选择 复杂度和规模需求高的应用程序: 技术栈的灵活性需求: 快速迭代和持续交付: 高可用性和容错性的要求: 4…...
速盾:cdn流量调度
CDN(Content Delivery Network)是指内容分发网络,它是一种通过部署在不同地理位置的服务器来传递互联网内容的技术。CDN的主要目标是通过将内容放置在离用户最近的服务器上,来提高用户访问网站的响应速度和性能。 CDN的流量调度是…...
Windows批处理入门:快速掌握批处理脚本的基本技巧
一、前言 在Windows操作系统中,批处理文件(Batch File)是一种非常实用的工具,它允许用户通过简单的命令行脚本来自动化各种任务。无论是系统管理员、开发人员,还是普通用户,掌握批处理文件的基本知识都能极…...
【C++之unordered_set和unordered_map的模拟实现】
C学习笔记---025 C之unordered_set和unordered_map的模拟实现1、unordered_set的模拟实现2、unordered_map的模拟实现 C之unordered_set和unordered_map的模拟实现 前言: 前面篇章学习了C对unordered_set和unordered_map的认识和应用,接下来继续学习&am…...
服务器使用别人的conda
很多台机器都共用一个conda时候,可以在conda的bin目录下运行./conda init来使得该环境机器用这个conda作为默认的conda。 但是有个环境报错: -bash: ./conda: /apdcephfs_cq8/share_1367250/jaimeji/anaconda/jaime_conda/bin/python: bad interpreter:…...
农村程序员陈随易2024年中总结
今天是 2024年7月1日,时间如白驹过隙,今年已去其一半。 总结一下今年上半年的情况,给大家提供一些参考和建议。 希望大家关注一下公众号 陈随易,有些内容只在公众号发表。 先看看我的年初计划,这个在今年年初的时候&…...
Spring Boot中的日志管理最佳实践
Spring Boot中的日志管理最佳实践 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来探讨一下在Spring Boot应用中如何有效管理日志,确保系统…...
python基础语法 004-2流程控制- for遍历
1 遍历 1.1 什么是遍历? 可以遍历的元素:字符串、列表、元组、字典、集合字符串是可以进行for 循环。(容器对象,序列)可迭代对象iterable 例子: 1 )、for遍历字符串: name xiao…...
【高考志愿】医学
目录 一、明确职业定位与兴趣 二、选择大学与专业 三、考虑身体条件 四、了解录取规则 五、考虑选科与成绩 六、注意志愿填报策略 七、关注就业前景 八、资深医生的建议 高考志愿填报学医时,考生需要综合考虑多个因素,确保自己能够做出明智的选择…...
音视频开发31 FFmpeg 编码- avcodec_find_encoder和avcodec_find_encoder_by_name
avcodec_find_encoder /** * Find a registered encoder with a matching codec ID. * * param id AVCodecID of the requested encoder * return An encoder if one was found, NULL otherwise. */ AVCodec *avcodec_find_encoder(enum AVCodecID id); 那么这个 AVCodec…...
大模型压缩:基于贝叶斯优化的自适应低秩分解
1.方法 1.1 基于特征的高维空间低秩分解 PCA已经是老朋友了,每次一说主成分都会出现PCA。这篇文章1利用预训练数据的子集作为校准数据集 D c a l { x i } i 1 n \mathcal{D}_{cal}\{x_{i}\}_{i1}^{n} Dcal{xi}i1n,首先用校准数据集的样本协方差…...
【Python函数编程实战】:从基础到进阶,打造代码复用利器
文章目录 🚋前言🚀一、认识函数🌈二、函数定义❤️三、函数调用⭐四、实参与形参💥1. 形式参数🚲2. 实际参数🔥1. 位置参数☔2. 关键字参数🎬3. 默认参数🔥4. 可变数量参数(不定长参…...
ZooKeeper 应用场景深度解析
✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 1.…...
动手学深度学习(Pytorch版)代码实践 -计算机视觉-41目标检测数据集
41目标检测数据集 import os import pandas as pd import torch import torchvision import matplotlib.pylab as plt from d2l import torch as d2l# 数据集下载链接 # http://d2l-data.s3-accelerate.amazonaws.com/banana-detection.zip# 读取数据集 #save def read_data_b…...
2.2章节python的变量和常量
在Python中,变量和常量有一些基本的概念和用法,但需要注意的是,Python本身并没有内置的“常量”类型。然而,程序员通常会遵循一种约定,即使用全部大写的变量名来表示常量。 一、变量 在Python中,变量是一…...
豆包文科成绩超了一本线,为什么理科不行?
卡奥斯智能交互引擎是卡奥斯基于海尔近40年工业生产经验积累和卡奥斯7年工业互联网平台建设的最佳实践,基于大语言模型和RAG技术,集合海量工业领域生态资源方优质产品和知识服务,旨在通过智能搜索、连续交互,实时生成个性化的内容…...
Java多线程编程实践中的常见问题与解决方案
Java多线程编程实践中的常见问题与解决方案 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! **1. **引言 Java多线程编程是现代软件开发中不可或缺的一部分&a…...
WebStorm配置路径别名(jsconfig.json)
项目是 ViteVueTs 新建一个 jsconfig.json文件 {"compilerOptions": {"baseUrl": ".","paths": {"/*": ["./src/*"]}},"exclude": ["node_modules", "dist"] }然后在 vite.confi…...
[吃瓜教程]南瓜书第4章决策树
1.决策树的算法原理 从逻辑角度,条件判断语句的组合;从几何角度,根据某种准则划分特征空间; 是一种分治的思想,其最终目的是将样本约分约纯,而划分的核心是在条件的选择或者说是**特征空间的划分标准 ** …...
Redis 面试题完整指南:深度解析基础、进阶与高级功能
基础知识 1. 什么是Redis? Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,既可以用作数据库、缓存,也可以用作消息中间件。它支持多种数据结构,如字符串、哈希、列表、集合、…...
spring 枚举、策略模式、InitializingBean初使化组合使用示例
实现一个简单的文本处理系统。 在这个系统中,我们将定义不同类型的文本处理策略,比如大小写转换、添加前缀后缀等,并使用工厂模式来管理这些策略。 1 定义一个枚举来标识不同的文本处理类型 public enum TextProcessTypeEnum {UPPER_CASE,LO…...
嵌入式学习——硬件(IIC、ADC)——day56
1. IIC 1.1 定义(同步串行半双工通信总线) IIC(Inter-Integrated Circuit)又称I2C,是是IICBus简称,所以中文应该叫集成电路总线。是飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备…...
vCenter VXR01405C ALARM Certificate is about to expire
vCenter VXR01405C ALARM Certificate is about to expire 需要更新证书 步骤如下 ===vCenter=== root@vc [ ~ ]# for i in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list); do echo STORE $i; sudo /usr/lib/vmware-vmafd/b STORE MACHINE_SSL_CERT Alias : __MACHINE…...
安装和微调大模型(基于LLaMA-Factory)
打开终端(在Unix或macOS上)或命令提示符/Anaconda Prompt(在Windows上)。 创建一个名为lora的虚拟环境并指定Python版本为3.9。 https://github.com/echonoshy/cgft-llm/blob/master/llama-factory/README.mdGitHub - hiyouga/…...
使用docker搭建squid和ss5
docker run -d --name squid-container -e TZAsia/Shanghai -p 自定义端口并记得开放:3128 ubuntu/squid docker exec -it squid-container /bin/bash apt update && apt install vim # 修改 http_port 3128 为 http_port 0.0.0.0:3128 # 修改 http_access deny all 为…...
大数据面试题之Flink(1)
目录 Flink架构 Flink的窗口了解哪些,都有什么区别,有哪几种?如何定义? Flink窗口函数,时间语义相关的问题 介绍下Flink的watermark(水位线),watermark需要实现哪个实现类,在何处定义?有什么作用? Flink的…...
策略模式、工厂模式和模板模式的应用
1、策略模式、工厂模式解决if else Cal package com.example.dyc.cal;import org.springframework.beans.factory.InitializingBean;public interface Cal extends InitializingBean {public Integer cal(Integer a, Integer b); }Cal工厂 package com.example.dyc.cal;impo…...
在postman中调试supabase的API接口
文章目录 在supabase中获取API地址和key知道它的restfull风格在postman中进行的设置1、get请求调试2、post新增用户调试3、使用patch更新数据,不用put!4、delete删除数据 总结 在supabase中获取API地址和key 首先登录dashboard后台,首页- 右…...
微信小程序毕业设计-英语互助系统项目开发实战(附源码+论文)
大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…...
【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第49课-机器人自动跳舞
【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第49课-机器人自动跳舞 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…...
【LLM教程-llama】如何Fine Tuning大语言模型?
今天给大家带来了一篇超级详细的教程,手把手教你如何对大语言模型进行微调(Fine Tuning)!(代码和详细解释放在后文) 目录 大语言模型进行微调(Fine Tuning)需要哪些步骤? 大语言模型进行微调(Fine Tuning)训练过程及代码 大语言…...
PHP 比 Java 的开发效率高在哪?
在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「JAVA的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!做了几年PHP,最近…...
高德定位获取详细位置失败的处理方法
在使用高德地图定位功能获取位置信息有时候会获取详细位置失败,但是经纬度是有的,这种情况下怎么处理呢,可以使用逆地理编码通过返回的经纬度来再次获取位置信息,如果再次失败那么获取详细位置信息就失败了。 具体工具类如下: package com.demo.map.utils;import androi…...
机器学习筑基篇,Ubuntu 24.04 快速安装 PyCharm IDE 工具,无需激活!
[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] Ubuntu 24.04 快速安装 PyCharm IDE 工具 描述:虽然在之前我们安装了VScode,但是其对于使用Python来写大型项目以及各类配置还是比较复杂的,所以这里我们还是推…...
借助ollama在linux离线环境上部署大模型
在mac上使用ollama下载并部署想要的模型。在linux上离线安装ollama:ollama离线安装。将mac的ollama的.ollama目录(~/.ollama/)完整拷贝到linux上(/usr/share/ollama/.ollama/):拷贝ollama模型,从…...
看互联网大厂如何落地AI-Agent(3)
vivo一站式AI智能体构建平台的演进实践 引言 在AI技术的浪潮中,vivo互联网产品平台架构团队负责人张硕分享了vivo在构建一站式AI智能体平台方面的演进实践和深刻洞见。 背景与挑战 vivo面临的挑战包括创造商业价值、降低学习成本、合规性、以及LLM(大…...
警惕AI泡沫:巨额投资与回报失衡
尽管高科技巨头们在AI基础设施上投入巨资,但AI带来的收入增长尚未显现,揭示了生态系统末端用户价值的重大缺口。 红杉资本分析师David Cahn认为,AI企业需每年赚取约6000亿美元才能抵消其AI基础设施(如数据中心)的成本&…...
使用Java构建物联网应用的最佳实践
使用Java构建物联网应用的最佳实践 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 随着物联网(IoT)技术的快速发展,越来越…...
逻辑图框架图等结构图类图的高效制作方式不妨进来看看
**逻辑图框架图等结构图类图的高效制作方式不妨进来看看** 基于我们每天都在处理大量的数据和信息。为了更清晰地理解和传达这些信息,结构图、逻辑图和框架图等可视化工具变得越来越重要。然而,如何高效地制作这些图表并确保其准确性和易读性呢…...
smart汽车焕新登场,精灵1及315.49万元起
2024年4月14日,杭州——备受瞩目的新奢智能纯电汽车品牌smart宣布,在国内市场焕新推出其明星产品系列——smart精灵#1及#3的全新版型,以更亲民的价格和更丰富的配置,满足都市消费者的个性化需求。此次焕新,smart精灵#1以“新奢灵动SUV”的全新定位亮相,推出了灵动标准版、…...
河北进一步完善跨区域排水防涝应急联动机制
河北进一步完善跨区域排水防涝应急联动机制三个应急联动片区实行省内统筹调度6月1日,我省正式进入汛期。从省住房城乡建设厅获悉,我省进一步完善跨区域排水防涝应急联动机制,提高区域协同应急救援能力。按照地理区位,全省划分北部、中部(廊坊、保定、沧州、定州、雄安新区)…...
“霸总雷军”发财报,又赢了
朋友们,5月23日,小米发布2024年Q1业绩公告。小米第一季度营收人民币755亿元,同比增长27%。雷军想必对今年的业绩是满意的。从2020年提出高端战略后,这是小米首次在财报中将其形容为“取得显著成效”。与之相对的是,2024年第一季度小米经调整净利润达人民币65亿元,同比增长…...
matplotlib ---词云图
词云图是一种直观的方式来展示文本数据,可以体现出一个文本中词频的使用情况,有利于文本分析,通过词频可以抓住一篇文章的重点 本文通过处理一篇关于分析影响洋流流向的文章,分析影响洋流流向的主要因素都有哪些 文本在文末结尾 …...
Spring 框架中 Bean 的生命周期?
在 Spring 框架中,Bean 的生命周期包括以下几个阶段: 1. 实例化(Instantiation):在这个阶段,Spring将根据配置文件或注解等方式创建Bean实例,并将其存储在容器中。 2. 属性赋值(PopulateProperties):在这个阶段,Spring将会自动将…...
资深老戏骨去世,他的作品很多人都看过
据港媒报道,TVB老戏骨颜国梁于25日22:30去世。颜国梁已经淡出荧屏多年。2022年,他参加TVB台庆之夜时,自曝患上鳞状细胞癌,并在接受治疗。其好友接受采访时表示,颜国梁的心脏、声带及呼吸均有问题,已多次住院。颜国梁最为人知的角色就是当年情景喜剧《香港81》系列饰演“陈…...