为了账号安全,请及时绑定邮箱和手机立即绑定

Portainer + GitOps:轻松部署和管理你的自托管应用

使用 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/

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消