docker login失败解决记录
在登录Docker私服时遇到错误,发现是安装docker-compose时,apt包管理器安装了golang-docker-credential-helpers导致的。解决方法是删除该包,使用命令`apt purge golang-docker-credential-helpers`,之后再次登录即可成功。
Ubuntu部署Umami
在Ubuntu上部署Umami,首先创建目录`/umami`并输入相关docker-compose.yaml文件内容。配置包括Umami服务和数据库服务,并设置相应的环境变量和依赖关系。最后通过运行`docker-compose up -d`命令更新容器。
国内可用的Docker镜像源
Docker镜像源在国内因某些原因无法使用,这里列出了当前国内可用的Docker镜像仓库,包括docker.1panelproxy.com、docker.m.daocloud.io等。这些镜像源为国内用户提供了访问Docker Hub的替代方式。
部署Docker私有仓库并实现登录功能
摘要:
本文介绍了如何部署Docker私有仓库并实现登录功能。内容包括拉取镜像、创建数据卷对应的文件及文件夹、为私有仓库设置账号密码、编辑docker-compose.yaml文件、修改daemon.json文件以添加私有仓库、运行容器并登录到私有仓库、从私有仓库推送和拉取镜像等步骤。通过本文,读者可以了解如何搭建和使用Docker私有仓库。
C语言
未读
湖北经济学院C语言专升本模拟题
湖北经济学院C语言专升本模拟题已公布。该模拟题是针对专升本考试中的C语言部分的学习而准备的。这些题目能够帮助学生理解和掌握C语言的特性和应用。然而,请注意,该模拟题中存在一些错误的答案,建议学生在使用时自行核实答案的准确性。
Halo博客修改后端文件不生效问题
本文描述了在修改Halo主题文件的HTML和JS文件后,网页刷新不生效的问题。经过查询,作者认为是缓存导致的问题。为此,作者详细阐述了删除本地浏览器缓存、Nginx(或Apache)缓存以及Halo博客的缓存的方法。通过清理这些缓存,再次刷新网页后,修改的内容得以生效。文章关键词为Nginx、Halo和Halo博客修改后端文件不生效问题。
Ubuntu上申请Let's Encrypt SSL证书
这篇文章是关于如何在Ubuntu上使用Let's Encrypt申请SSL证书并将其配置到Nginx服务器上。首先介绍了Let's Encrypt作为一个开源证书颁发机构提供免费SSL/TLS证书。然后详细描述了安装snapd和Certbot、创建符号链接、获取证书、自动续订证书以及将证书配置到Nginx的步骤。文章还提供了相关的代码示例和图片说明,以帮助读者更好地理解和完成操作。关键词:Ubuntu、Nginx、Let's Encrypt SSL证书。
MybatisPlus快速上手
摘要:本文介绍了MybatisPlus的使用方法和常见注解,包括实体类与数据库表信息扫描反射绑定、常见注解如@TableName、@TableId和@TableField的使用,以及配置项的设定和Service与Mapper的继承等。同时介绍了构造器LambdaQueryWrapper的用法,枚举处理器、Json处理器和分页插件的配置。整体介绍了MybatisPlus的功能和使用方法,帮助读者快速上手。
Ubuntu18使用Docker安装RabbitMQ
本文介绍了在Ubuntu 18系统上使用Docker安装RabbitMQ的步骤。首先更新软件存储库,然后删除旧的docker,接着安装docker。安装完成后,启动docker并设置开机自启。之后修改docker镜像源,具体修改的是1panel的镜像源。接下来,通过Docker运行RabbitMQ容器,并安装和启动RabbitMQ。然后,在RabbitMQ容器中新增用户,并设置用户权限。最后,访问RabbitMQ管理页面,完成安装和配置。
Spring Boot文件上传到本地
Java Spring Boot实现电影图片上传功能,定义Controller类对应接口,通过PostMapping注解定义电影图片上传的接口地址。实现类中,获取上传文件的原始名称、后缀,生成新的唯一文件名并保存到本地。上传成功后返回文件路径,若上传失败则抛出异常。
后端
未读
后端使用统一Result返回,Knife4j获取data的具体结构
Java后端使用统一Result类进行响应,其中Result类包含success、errorMsg、data和total等字段。通过@Data、@NoArgsConstructor和@AllArgsConstructor等Lombok注解,简化了代码。Result类提供了ok、fail等静态方法构建实例。在Controller类方法中,返回值示例展示了如何使用Result类。Knife4j文档响应结果展示了后端如何通过Result返回数据,其中data的具体结构可以通过查看相关Controller方法的文档获取。
synchronized可以锁字符串吗?
Java中的synchronized锁的对象,不能直接用于锁定字符串,因为每次传递的字符串都是不同的对象实例。为实现锁定同一字符串的目的,可将字符串放入字符串常量池或使用Google的Guava包的Interner类。然而,使用常量池存在服务器内存和垃圾回收的问题。Guava的Interner类通过弱引用的方式实现字符串的锁定,便于内存回收,比常量池更为灵活。
拦截器和ThreadLocal的配合使用
在Java开发中,通过拦截器的preHandle方法获取用户信息并存入ThreadLocal,以便业务代码中直接使用。使用ThreadLocal存储用户信息可避免频繁从Redis中获取。UserHolder代码管理用户信息。请求完成后需从ThreadLocal中删除用户信息。这种Java、拦截器和ThreadLocal的配合使用提高了效率和性能。
前端
未读
Spring Boot解决前端携带自定义Header时的跨域问题
浏览器在跨域访问携带自定义Header时,会先发送OPTIONS请求确认。服务器需配置允许该请求头并返回相应响应头信息。使用Java和Spring Boot,可以在拦截器或过滤器中加入允许的Header信息,并返回正确的响应头给浏览器。若服务器未能正确配置,前端携带自定义Header进行跨域访问可能失败。同时,确保在controller上添加@CrossOrigin注解。
Knife4j页面空白问题
当检查网络响应为空时,可能意味着内容被拦截。确认被拦截后,可在过滤器或拦截器中放行。对于Java项目中的Knife4j页面出现空白问题,需检查以上提到的URL路径:"/doc.html", "/doc.html#/**", "/webjars/**", "/v3/**",确保没有被拦截影响页面显示。
设计模式
未读
设计模式-单例设计模式
摘要:本文介绍了设计模式中的单例设计模式,包括其定义和实现方式。单例设计模式指单例类只能创建一个对象,提供了访问其唯一对象的方式。实现方式分为饿汉式和懒汉式,其中懒汉式又分为多种实现方式,如双重检查锁模式、静态内部类模式等。另外,使用枚举创建单例对象不会被反射破坏。最后,为了避免反射破坏单例模式,可以加上readResolve()方法。
Halo博客显示空格
在Halo博客的控制台设置中,找到代码注入部分并填入特定的CSS代码到全局或内容页head标签中。CSS代码为`<style>p{white-space: pre-wrap;}</style>`,该代码可使博客中的段落文本自动换行,避免过长文本导致部分文字无法显示的问题。注意使用pre-wrap而不是pre。
AList文件无法下载,404问题
使用Nginx反向代理时,需检查配置是否正确。配置中,location块内的proxy_set_header Host应设置为$http_host以包含端口号。还需注意client_max_body_size用于设置上传文件的大小限制。关于AList文件无法下载及404问题,请确保proxy_pass指向正确的URL。
Ubuntu
未读
Ubuntu安装jdk7,jdk17,jdk21,切换不同Java版本
在Ubuntu系统中,可以通过使用apt命令安装OpenJDK的多个版本,如jdk-8、jdk-17和jdk-21版本。使用`sudo update-alternatives --config java`命令切换不同的Java版本。根据需要,可以选择并安装所需的Java版本。