因 inodes 占用资源过多导致 no space left on device 的问题
摘自:https://blog.csdn.net/weixin_34383474/article/details/121493708 问题现象使用 GitLab Runner 的打包机器执行命令打包 Docker 镜像时报 "no space left on device" 的错误,无法正确打包。 问题排查步骤登录打包机查看机器剩余磁盘容量,得到结果物理机磁盘仍有剩余空间: 1df -h 通过复制文件证明磁盘空间确有剩余,但是在物理机上直接执行 Docker 命令依然存在 no space left on device 空间不足的报错。 通过搜索找到原因:服务机 inodes 使用过高,执行指令得到结果 inodes 占用 100%,原因为 Docker 打包过程中小文件生成过多导致 inodes 占用过高。 inode 是什么 inode 是文件系统中的一个数据结构,用于存储文件或目录的元数据信息,如文件大小、所属用户、所属组、权限、创建时间、修改时间等等。每个 inode 都有一个唯一的编号,称为 inode 号。 当文件或目录被创建时,会分配一个 in...
软链接和硬链接的用法
查看软/硬链接123456789101112[root@k3s-node4 bin]# ls -ltotal 25844-rwxr-xr-x 1 root root 26451968 Mar 29 02:23 docker-composelrwxrwxrwx 1 root root 26 Apr 6 02:16 node -> /usr/local/nodejs/bin/node-rwxr-xr-x 1 root root 3506 Apr 14 09:27 node-gyplrwxrwxrwx 1 root root 25 Apr 6 02:16 npm -> /usr/local/nodejs/bin/npm-rwxr-xr-x 1 root root 177 Apr 14 09:27 npx-rw-r--r-- 1 root root 27 Apr 14 09:28 package-lock.jsonlrwxrwxrwx 1 root root 25 Apr 14 09:37 pm2...
针对文件的操作指令记录
清除文件内容递归清空指定路径下所有文件的内容,但不删除文件本身1234# truncate -s 0 表示将文件大小设置为 0# {} + 表示对所有找到的文件执行这个操作find /path/to/directory -type f -exec truncate -s 0 {} +
Liquibase 的使用
Liquibase 简介引自官网: LiquiBase 是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通过执行 schema 类型的文件来达到迁移。其优点主要有以下: 支持几乎所有主流的数据库,如 MySQL、PostgreSQL、Oracle、SQL Server、DB2 等 支持多开发者的协作维护 日志文件支持多种格式,如 XML、YAML、JSON、SQL 等 支持多种运行方式,如命令行、Spring 集成、Maven 插件、Gradle 插件等 在多数据源项目中,SQL 显然不如 YAML/XML 等自如 版本号由开发人员来维护,使用 author + id Maven 依赖配置12345678910111213141516171819202122232425262728293031<dependencies> <dependency> <groupId>org.liquib...
Gradle 构建工具
介绍Gradle 是 Google 开发的基于 Groovy 语言,用于代替 Ant 构建的一种配置型语言。 Gradle 是基于 Groovy 语言实现(基于 JVM 的语法和 Java 类似的脚本语言)的一个 Android 编译系统,Google 针对 Android 编译用 Groovy 语言开发了一套 DSL 语言,有额外需要直接使用 Groovy,或者 Java 代码解决。 下载 / 安装地址:http://services.gradle.org/distributions/ 环境配置123456GRADLE_HOME={installed path}PATH=%GRADLE_HOME%\bin# 缓存依赖项/元数据/插件数据# 该属性的默认值根据平台不同而不同,Windows平台默认为C:\Users\用户名\.gradle,Linux和Mac平台默认为~/ .gradle。可以通过设置该属性来指定Gradle用户目录的位置# GRADLE_USER_HOME= 验证gradle -v 问题&解决办法记录Idea中gradle...
Maven 配合 Fabric8 插件整合使用
Maven 配合 fabric8 插件整合使用(谨供参考) 自建镜像仓库并推送到远端定义 properties: 123456789<docker.plugin.version>0.35.0</docker.plugin.version><!--docker 守护进程 uri,一般是自己的 docker 所在环境:2375--><docker.host>http://localhost:2375</docker.host><!--镜像推送及拉取地址--><docker.registry>docker.io</docker.registry><!-- namespace 使用本人 docker 用户名 --><docker.namespace>xxx</docker.namespace><docker.username>xxx</docker.username><docker.password>xxx</doc...
Gradle 插件开发指南
开发自定义Gradle插件Gradle插件是封装可重用的构建逻辑的一种方式,可以在许多不同的项目和构建中使用。Gradle允许您实现自己的插件,以便重用您的构建逻辑,并与他人共享。 您可以使用任何语言来实现Gradle插件,只要最终实现编译为JVM字节码即可。在我们的示例中,我们将在独立的插件项目中使用Java作为实现语言,在构建脚本插件示例中使用Groovy或Kotlin。通常情况下,使用静态类型的Java或Kotlin实现的插件将比使用Groovy实现的相同插件性能更好。 打包插件有几个地方可以放置插件的源代码。 构建脚本您可以直接在构建脚本中包含插件的源代码。这样做的好处是,插件会自动编译并包含在构建脚本的类路径中,无需进行任何操作。但是,插件在构建脚本之外不可见,因此您无法在定义插件的构建脚本之外重用该插件。 buildSrc项目您可以将插件的源代码放在rootProjectDir/buildSrc/src/main/java目录中(或rootProjectDir/buildSrc/src/main...
Maven & Gradle 多环境配置
Gradle 多环境配置目录结构 指定环境打包在 application.yml/yaml/properties 中: 执行 bootJar 打包命令前要先执行 clean【其它和 processResources 相关的命令也要先执行 clean】,否则 active 值不会变! 123spring: profiles: active: @activeProfile@ 修改 build.gradle 的 processResources 任务123456789101112131415161718192021222324252627282930313233def activeProfile = project.properties['activeProfile'] ?: "dev"processResources { exclude { FileTreeElement details -> { (//排除不是当前环境的 yml 配置文件 details.file.na...
Maven 常用插件(长期整理)
maven-compiler-plugin这个插件是用来编译源代码的。 例如报错 static import declarations are not supported in -source 1.3,这是因为编译的时候默认是 1.3 版本。可以设定编译器的版本为 1.6。 注意:target 版本一定大于等于 source 版本。 用法: 12345678910111213<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6<...
将 Maven 包发布到 Maven 中央仓库
注意点: 测试 gpg 和 javadoc 插件不适用于 JDK 11,JDK 8 测试没问题 同一个版本号不可以重复发布 无法删除已发布的包 注册 Sonatype 的账户注册地址 点击界面上方 Create 按钮即可创建 Issue。 12345678Project: Community Support - Open Source Project Repository Hosting (OSSRH)Issue TypeRequired: New ProjectSummary: Jar 包的名称# 注意这里,group id 需要证实当前域是你本人所有的,我就在这里配错了,找了好半天,详细的过程可以看这里 https://issues.sonatype.org/browse/OSSRH-79407Group Id:io.github.wang-xiaowuProject URL:项目站点,如:https://gitee.com/snowheart/dingtalk-robotSCM url:项目源码仓库,如:https://gitee.com/snowheart/din...
