使用 Docker,自托管变得更容易且更实际。你不需要理解源代码,也不需要自定义任何东西。对于你不太熟悉的设置,开源应用程序可能需要自己的专家。
Docker 让这一切几乎像在电脑上从二进制文件安装一个应用一样简单。事实上,我之前从未直接在我的电脑上安装过 Redis,我在服务器上运行了几个自带 Redis 实例的应用,一旦需要直接在我的项目中使用 Redis,我完全不担心如何设置。
我要告诉你我常用的托管方式,我通常怎么托管例如简单的Node.js和php应用、WordPress网站,以及其他许多开源工具(虽然这些工具也有SaaS服务,但我更喜欢自己托管)。
Portainer:我的容器管理好帮手Portainer 是我所有容器化事物的中央控制中心,这个方便的工具让我可以构建、部署和管理单个容器以及整个堆栈。我提到了吗?它本身也作为一个轻量级容器运行。这是我的 docker-compose.yml 文件中 Portainer 的简洁配置,让我们一起看看:
version: "3"
services:
portainer:
image: portainer/portainer-ce:latest
restart: unless-stopped
ports:
- 9000:9443
volumes:
- data:数据
- /var/run/docker.sock:/var/run/docker.sock
volumes:
data: 数据
网页UI
Portainer的网页界面几乎囊括了你需要查看和操作堆栈及容器的所有内容。
安全接入我使用Cloudflare零信任来公开我的Portainer(以及其他私有应用)。只需将一个子域指向一个端口,使用隧道,然后启用零信任,确保所有对该子域的请求都需要经过零信任认证。
Portainer GitOps:让我们来谈谈精彩的部分,这就是 Portainer 的魅力所在:GitOps 集成。这并不是什么高深莫测的技术,但当你自己部署应用时,这是最重要的需求。
当然,如果你在管理代码,比如模板、扩展、插件,或者配置文件(如 SQL、Redis、Node、PHP、Nginx)。
这使得您的简单项目也更接近“基础设施即代码”的实践,而无需深入了解复杂的AWS、Azure等IaC模式。
假设你将它们保存在 VCS 中,更倾向于使用 GitHub,你将 Git 流程(比如合并某个 PR 到特定分支)视为部署的主要触发因素。
Portainer 自带了原生的 GitOps 集成,可以通过 webhook 和轮询(虽然不推荐,但可以作为备份方法)来实现。当你向你定义的分支推送代码时,Portainer 会重新运行你的堆栈(或应用),如果有需要,还会构建你的镜像,然后用这些更改重启你的容器。 🎩
Portainer 是一个开源项目(zlib 许可),并且其社区版本是免费的。它在商业许可证下提供了更多的高级功能。我发现有几处地方希望具备那些高级功能,但它们并未成为我使用场景中的“瓶颈”。我认为,如果要在团队或公司范围内更广泛地使用 Portainer,那么商业许可证可能是必需的。我认为,如果要在公司范围内的更大团队中使用 Portainer,那么商业许可证可能是必需的。
在一段时间后,我想找一个真正开源且非盈利的版本的Portainer,确实有好几个,但Portainer(及其与GitOps的集成)让它成为一个相当不错的组合,所以我没打算去换它。
看看这个 https://www.portainer.io/
这篇文章最早发布在我的博客:https://mfyz.com/portainer-gitops-a-simple-way-to-deploy-and-manage-your-self-hosted-applications/
共同学习,写下你的评论
评论加载中...
作者其他优质文章