打造最小化docker容器镜像

 本文章主要记录博主近几年的使用, 去除知识冗余 以最简单直接方式是记录如何打造最小化 docker 容器镜像以 提高构建速度 以及 容器优化 ,本次实验我们使用典型的 PHP镜像 为实验目标其他类型类似可以参考。概述 打造最小化docker容器镜像的几个步骤尽可能选择 alpine tag 类型镜像减少构建层数清理无用缓存数据分阶段构建alpine 镜像 如果是为了保持镜像最小化建议使用 alpine 镜像 本身 alpine 系统大小只有 5M 所有基于 alpine 系统构建的镜像要比基于其他系统镜像要小的多### 一、核心差异对比维度AlpineUbuntu/DebianCentOS镜像体积≈5 MBUbuntu: ≈72-188 MB Debian: ≈47-125 MB≈200-230 MB包管理器apk(轻量高效)apt(功能全面)yum(企业级支持)C库musl libc(轻量)glibc(兼容性强)glibc安全性默认最小化安装,攻击面小依赖较多,需手动精简企业级安全策略启动速度极快(资源消耗低)中等较慢减少构建层数在构建 dockerfile 是我们尽可能...

PHP,Golang,前端,.Net,数据库,Linux,解决方案,其他 2025-07-08 AM 57次 0条

全能激活方法支持几百种软件包括不限IntelliJ IDEA系列等等

CodeKey Run (ckey.run)是一个专注于 JetBrains 系列软件及插件自动激活的网站,支持 Windows、Linux 和 Mac 操作系统,几乎涵盖了 JetBrains 全线产品及主流插件。其核心优势在于“ 一键激活 ”,无需繁琐配置,适合广大开发者和团队快速部署开发环境。支持产品与插件CodeKey Run 支持 JetBrains 全家桶,包括但不限于:IntelliJIDEAPhpStormPyCharmWebStormGoLandRiderDataGripCLionAppCodeDataSpellRustRoverdotMemory使用方法Windows使用 Win + X 按键,选择 WindowsPowerShell(管理员) 运行在命令行中执行以下命令irm ckey.run|iex程序会全自动激活Linux打开终端,输入并执行wget --no-check-certificate ckey.run -O ckey.run && bash ckey.runMac打开终端,输入并执行curl -L -o ckey.run cke...

PHP,Golang,Linux,解决方案,资源分享 2025-06-18 PM 248次 0条

整理分享早期自研中小型企业级开发系统架构

 本文主要整理分享早期部分 脱敏后 设计的 中小型企业级系统开发架构图 。架构对比 本次对比采用 1H2G1M ECS 与 1H1G RDS 本地测试网络延迟为 18ms ~ 19ms 进行测试,周期为 6个月 以实际普通商城项目为对比实例名称自研架构原生TP原生Laravel其他第三方知名框架(2~3个)开发效率5 day ~ 8 day20 day ~ 31 day21.5 day ~ 29 day17 day ~ 25 dayBUG 发生率1% ~ 15%70% ~ 100%65% ~ 100%%49 ~ 78%平均MS22ms ~ 25ms27ms ~ 45ms29ms ~ 43ms35ms ~ 62ms扩展性100%25%26%53%可维护率100%13%15%49% 以上测试用例均做过简单专业的程序优化以及系统优化,测试数据可能有上下浮动仅作参考。

Linux,解决方案 2025-04-17 AM 48次 0条

Ubuntu乌班图命令行扩容教程

 本文主要记录在虚拟机中扩容硬盘后系统中Ubuntu系统中不显示不生效问题,假设现在已经在虚拟机中扩容了 250G 硬盘,并且已经重启。查看硬盘容量命令sudo lsblk回显信息NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 250G 0 disk ├─sda1 8:1 0 1G 0 part /boot/efi ├─sda2 8:2 0 2G 0 part /boot └─sda3 8:3 0 196.9G 0 part └─ubuntu--vg-ubuntu--lv 252:0 0 196.9G 0 lvm / sr0 11:0 1 1024M 0 rom 可以看到 sda 已经是...

Linux,解决方案 2024-07-19 PM 1334次 0条

Redis 提示 protocol error, got 'u' as reply type byte 解决方案

 遇到一个奇怪的问题,在 php 中使用 workerman 或者传统 pcntl_fork 的开启子进程时 大约十几分钟就会出现一段异常报错 protocol error, got 'u' as reply type byte 初步诊断是redis提示的 大致意思是 协议错误,得到'u'作为回复类型字节 。异常信息protocol error, got 'u' as reply type byte通过代码排查以及报错提示初步判断是redis的问题原因分析 传统 cli 下不会出现这个问题,只有 workerman 下以及 pcntl_fork 的开启子进程时 十几分钟后才会出现。 已知 workerman 底层使用的也是 pcntl_fork 我们直接分析这个函数。 pcntl_fork 函数 先创建主进程然后在根据需要创建N个子进程,而redis使用 单例模式 或者使用 static 来进行保存连接对象时候并且在主线程内有创建这个连接,那么就会出现以上 protocol error, got 'u' as reply type byte 错误 这种异常一般称为...

PHP,Linux,解决方案,其他 2023-12-18 PM 1316次 0条

使用virtualbox挂载文件夹教程

 下面记录了我们在使用 virtualbox 虚拟机命令行模式下挂载文件夹的步骤及流程。进入设置设置共享文件夹首先选择右侧虚拟机选择设置按钮点击添加共享文件夹选择文件夹配置我们选择自动挂载,固定分配安装增强功能进入系统后我们选择顶部 设备 选择安装增强功能创建挂载增强功能文件夹mkdir /mnt/cdrom挂载增强功能mount /dev/cdrom /mnt/cdrom安装更新软件包yum install -y gcc gcc-devel gcc-c++ gcc-c++-devel make kernel kernel-devel bzip2执行安装增强功能cd /mnt/cdrom/ && ./VBoxLinuxAdditions.run创建共享文件夹mkdir /mnt/project更新软件包yum update重启服务器reboot执行挂载命令sudo mount -t vboxsf project /mnt/project可以看到我们已经使用virtualbox挂载文件夹成功了。开机自动挂载修改配置文件vi ~/.bashrc

Linux,解决方案 2023-06-16 PM 1915次 0条

php打包扩展zephir避坑安装指南

 本文主要记录了zephir各种安装失败,打包失败的正确姿势,完美解决各个版本php打包php打包扩展zephir避坑安装指南,一旦拥有别无所求。参考文档zephir官方网站zephir官方中文文档zephir中文文档(备用)")使用系统镜像 我们使用2207版本centos7安装系统CentOS-7-x86_64-Minimal-2207-02.iso系统环境 我们通过宝塔面板来安装指定php版本,当然你也可以使用其他方式安装。宝塔安装Git 如果提示找不到git命令我们可以通过以下命令安装一下gityum install gitzephir安装步骤首先我们来到系统根目录将 php-zephir-parser 通过 Git 方式 Clone 下来githubgit clone https://github.com/zephir-lang/php-zephir-parsergiteegit clone https://gitee.com/laiwi/php-zephir-parser.git国内 Clone 失败可以使用 gitee安装编辑PHP环境zephir_parser.s...

PHP,Linux,解决方案 2023-06-16 AM 1262次 0条

解决Liunx安装找不到最新版本软件方案

 我们在使用linux,centos等系统想要安装最新版软件时候发现无论怎安装都是老版本的软件,下面我们通过安装 PHP8.1 , php-devel 等软件来演示一下怎么将linux软件库更新到最新版本。步骤下面我们使用 centos7 来作为演示系统查看当前系统软件库列表 我们通过以下命令可以查看更新之前的软件库内软件的版本。sudo yum search all php-devel 一般情况下 新安装的系统软件库版本比较老旧并没有最新版本的软件。安装 epel-releasesudo yum install epel-release安装最新版 remi 源 Remi 源大家或许很少听说,但是我们强烈推荐,尤其对于不想编译最新版的 Linux 使用者, 因为 Remi 源中的软件几乎都是最新稳定版。sudo yum -y install https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm安装 yum-utilssudo yum -y install yum-utils最后我们再次查看当前系统软...

PHP,Golang,Linux,解决方案 2023-06-13 PM 1402次 0条

阿里云redis数据库迁移工具RedisShake

 RedisShake是阿里云开源的高性能redis数据库迁移工具简单易用快速,上手非常简单 现在 redis-shake 有两个主版本:redis-shake 2.x:持续更新 3 年,目前停止更新与答疑,遇到问题推荐尝试 3.x 版本。redis-shake 3.x:基于 redis-shake 2.x 重写,代码可读性高,性能较佳。安装RedisShake安装方式有两种二进制包安装直接下载打包后的压缩包二进制包从版本下载:https://github.com/alibaba/RedisShake/releases从源代码编译git clone https://github.com/alibaba/RedisShake cd RedisShake sh build.sh下载打包压缩包下载并解压:https://github.com/alibaba/RedisShake/releases/download/v3.1.10/redis-shake-linux-amd64.tar.gz配置RedisShake 点击配置 scan.toml , restore.toml , sync...

软件工具,数据库,Linux,解决方案 2023-03-13 PM 1301次 0条

新手也能看懂的jenkins上传文件到阿里云oss脚本

 分享一段新手也能看懂的jenkins上传文件到阿里云oss脚本,便于其他同学快速入门.步骤 下面实现了代码从仓库到上传文件到阿里云oss过程,分别是拉取仓库代码打包代码上传清理当前工作空间源码pipeline { agent any parameters{ string(name:'git_url',defaultValue:'https:/xxxx.cn/xzz/xxxxx.git',description:'仓库地址') string(name:'version',defaultValue:'main',description:'版本') string(name:'build_name',defaultValue:'xxxxxx',description:'打包名称') } stages { stage('拉取') { steps { deleteDir() checkout([ $class: 'GitSCM', ...

Linux,解决方案,其他 2022-12-28 AM 1311次 0条