欢迎来到我的博客,本博客主要分享 WEB 开发的一些学习经历。以及我个人读书的思考和对生活的感悟。
-
本博客也会涉及一些对于编程思想的介绍和开发工具的一些好用的插件及进阶用法。
-
如果博客里的文章引发了你的思考,欢迎你与我交流。
欢迎来到我的博客,本博客主要分享 WEB 开发的一些学习经历。以及我个人读书的思考和对生活的感悟。
本博客也会涉及一些对于编程思想的介绍和开发工具的一些好用的插件及进阶用法。
如果博客里的文章引发了你的思考,欢迎你与我交流。
这些年在我个人的开发电脑上用过很多的发行版,基于 Debian 的 (Ubuntu , Linux Mint ), 基于 Red Hat Enterprise Linux ( CentOS,Fedora),基于 Arch 的(EndeavourOS、Manjaro),还有我们国产优秀发行版 deepin。 作为个人开发使用的发行版我比较看重的点是能否更快的使用最新的软件版本和内核版本,能否充分利用硬件性能以及能否使用最新的 Linux 技术。 基于以上原因我把发行版锁定在 Arch 或基于 Arch 的发行版。Arch 的滚动更新,能够让我一直使用最新软件版本,也能第一时间体验 最新的 Linux 系统内核的新特性。 我是通过 Manjaro 进入了 Arch 的世界,它对新手非常友好,简单的安装方式、优秀的兼容性帮我平滑的度过了新手期,它也是我使用时间最长的发行版。 后来为了体验更加原汁原味的 Arch ,我安装了 EndeavourOS,EndeavourOS 比 Manjaro 更加的轻量化,软件包的发布也要比 Manjaro 要领先一些。EndeavourOS 整体安装和使用和 Manjaro 差不多,但兼容性上较 Manjaro 要差一些,这些兼容性问题通常并致命不影响正常的使用。 一次偶然的机会我接触到了 CachyOS ,我感觉它就是我想要找的发行版了,他所做的一切很符合我对操作系统的需求。 简单的安装方式 CachyOS 和 Manjaro 、EndeavourOS 一样有着图形化的安装方式,我们可以很方便的把系统安装到我们的电脑中。即使新手也可以很容易的使用 CachyOS。 CachyOS 集成了丰富的 Desktop Environments 除了常见的 KDE、GNOME 、FCE 还有很多平铺的 DE 如 i3、Hyprlad,CachyOS 集成的 DE 一共有 17 种之多,这可以让你用一种很纯净的方式把 DE 集成到系统中。 ...
最近我把本地的容器管理引擎切换到了 Podman,本篇文章来讲讲我为什么从 Docker 切换到 Podman。 兼容 Docker Podman 对 Docker 的兼容非常好,Podman CLI 和 Docker CLI 命令几乎一致,这样就大大降低了切换成本,你甚至可以把 Podman CLI 就当作 Docker CLI 来用。 无守护进程 Docker 有一个守护进程 dockerd 负责管理容器、镜像和网络,Docker CLI 所有的指令都是通过 dockerd 来实际执行的。 Podman 却没有这样一个守护进程来处理,Podman CLI 会启动一个 conmon 进程来管理容器的生命周期,启动 conmon 后 Podman CLI 退出了,只有 conmon 带着它管理的容器作为系统进程保留了下来。 这种无守护进程的模式带来了很多好处: 我的系统不用一直启动一个 dockerd 守护进程,减少了系统资源的占用。 不会因为 dockerd 的异常退出导致所有容器崩溃 支持 rootless Podman 支持以普通用户运行而 docker 默认情况下是以 root 用户来运行的。当发生容器逃逸时 Docker 能拿到 root 权限而 Podman 会将影响范围限制到用户层面,降低了风险的影响范围。 更方便的网络设计 Podman rootless 默认使用的是 slirp4netns 它仅能给单容器提供网络服务,不能提供容期间的通讯,如果想容器间进行通讯就只能通过物理机映射端口或者把容器加入到同一个 pod 进行通讯了。 ...
目前我们公司已经深度的使用 Docker 来部署项目,在推进 Docker 落地的过程中,如何将 Docker 的配置文件更好的融入项目一直是困扰着我们的问题。 刚开始我们把 Docker 配置文件全部一股脑地放在项目里, 使编程架构和部署架构给混在了一起,如果开发和部署是一拨人倒还好,如果开发和部署是分开的两个工种,这种方式会造成一定程度的混乱。 以我们 Laravel 项目目录结构为例 . ├── app ├── artisan ├── bootstrap ├── composer.json ├── composer.lock ├── config ├── database ├── docker ├── docker-compose.yml ├── Dockerfile ├── .editorconfig ├── .env.example ├── .git ├── .gitattributes ├── .gitignore ├── .gitlab-ci.yml ├── package.json ├── .php-cs-fixer.cache ├── phpunit.xml ├── public ├── README.md ├── resources ├── rolling-update.sh ├── routes ├── storage ├── tests ├── vendor └── vite.config.js ...
最近在公司搭建最新版本的 Laravel 开发环境,对 docker 部署进行了进一步的优化,我们之前的项目是把定时任务 Cron 和 API 在同一个容器里启动的,这显然不太符合容器的最佳实践,借着这次框架搭建的契机,我决定优化一下这个问题。 环境如下: Laravel : 12 PHP : 8. 4 我们把项目跑在两个容器里,一个是 API 的容器,另一个是 Supervisor 的容器,把 Cron 和 Jobs 放在放在 Supervisor 里执行。 这样就能避免维护过多的容器。在后期做 CI/CD 也会更加方便。 Supervisor 使用和 PHP 一样的 Dockerfile 因为 Supervisor 会用到 PHP 环境来起 Laravel 的 Jobs。 整体方案就是这样来做的,比较简单, 文末我会放一个 git 仓库地址,感兴趣的可以可以进一步了解,接下来讲讲一些细节。 Cron 的配置我们放在了 Dockerfile 里来配置,当然你也可以放在 entrypoint.sh 里来做。 RUN echo "* * * * * /usr/local/bin/php /var/www/artisan schedule:run >> /var/log/cron.log 2>&1" | crontab - 我们的 docker compose 配置如下: ...
在一个博客上偶尔看到了一个博主推荐《从你的童年路过》, 这本书是一位得癌症的摄影师父亲写给儿子的书。作者希望能够将书里的内容,作为孩子将来人生路上的灯塔,为孩子迷茫时指引方向。 关于温柔 作者希望孩子做一个温柔的人,并告诉孩子温柔的前提是理解你需要真正的理解他人,并在自己能力范围内给予帮助才是温柔的对待他人。 这让我深受触动,很多时候我们都是从自己的角度去给别人建议,这种建议被作者称为温柔的虐待。作者介绍自从他的家人和朋友知道他得癌症之后,都劝他积极的治疗,多活一天是一天,作者却认为这是对他的“温柔的虐待”,让他不堪其扰——他不仅要对抗癌症带来的痛苦,还要应对周围人带来的情感负担。 与之形成鲜明对比的是作者的妻子,她不仅在作者生病期间承担了更多的家务,还鼓励他勇敢的做自己,让他想做什么就做什么。作者看到了妻子坚强的一面,一些他之前认为妻子做不到的事,妻子都能做的很好,这让作者减少了一些后顾之忧。 作者选择减少工作,疯狂的给孩子拍写真集,这是他的温柔,他希望通过照片作为纽带,像长大后的孩子表达自己对他的爱。 关于孤独 作者认为人应该要有意识的体会孤独,因为每个人最终都会孤独的走完人生最后的旅程。随着年龄的增长,我感觉人确实会越来越孤独,你正在经历的很多事情无法对他人诉说,你知道即便是说出口别人很难真正的理解,你只能将它埋在心里独自消化,慢慢的将它沉淀成你人生的厚度。 孤独的承受能力是可以训练的,我们现在的世界灯红酒绿,每天在手机里看着万千世界,看似精彩纷呈,我们每天抱着手机睡去,孤独似乎是一个很遥远的词。 我却隐隐感觉哪里不对,当有一天真正要面对孤独的时候会有巨大的无力感。适当的与电子设备保持距离,尝试一些冥想、写字,独处的发呆,有益于我们对抗孤独。 关于梦想和工作 作者认为工作是实现梦想的工具,最好的状态是你从事你热爱的事情。我很羡慕作者能够很早的就找到自己喜欢的事情。 为了鼓励他的孩子找到梦想,作者还计划在孩子 18 岁时,给孩子准备 100 万日元,由孩子自由支配。 我觉得这是一个非常有意思的计划,孩子不仅可以自由的探索世界寻找梦想,还能够比较早的驾驭金钱。这对一个刚成年的孩子来说是一个非常好的锻炼。 同时我也认为刚毕业的大学生不要考虑挣钱,找到一个自己热爱的事情更为重要。 Others “ 我儿子还有 16 年零 9 个月高中毕业 13 年零 9 个月初中毕业 10 年零 9 个月小学毕业 我却连看着他 幼儿园毕业的机会都没有了…… ” 生命就是这样,有时候能迸发出极其强大的能量,有时又显的弱小而无奈。我们都不知道明天和意外哪个先来,唯一能把握的就是过好每一个当下。 站在生死面前,能够更好的审视自己想过怎样的人生,用尽全力的过好每一天,向着心中的阳光拼命奔赴,绽放自己的光芒。