今天的技术和仪器数量令人印象深刻。 但是,不幸的是,我们仍然没有一种能够解决所有问题的解决方案。 大概这就是帮助我们发展的原因。
没有一个解决方案适合任何项目,这意味着每个项目可能都有自己的,有时是唯一的解决方案。 当然,这并不意味着我们不能针对不同的项目使用一种解决方案,但同时,我们不应仅限于一种解决方案。 例如,必须启用gzip的建议很多,这将使您的网站更小并且加载速度更快。 但是,如果您的服务器具有有限的硬件资源(如树莓派,共享服务器等)怎么办? 在这种情况下,它将帮助您压缩数据,但同时会减慢服务器的运行速度,这对您至关重要。 另一个例子-我遇到了使用JS框架(如React.js,Vue.js或Angular.js)登录或登录页面的网站。 当然,这些框架最适合复杂的应用程序(组件,隔离,炒作)。 但这并不意味着我们必须将它们应用在可能和不可能的任何地方。 为什么访问您的Web应用程序并且永远不会登录的任何人都应该下载他/她永远不会使用的捆绑软件? 为什么在大多数情况下登录页面使用额外的+/- 300kb JavaScript足以使用普通的解决方案(例如HTML表单或简单链接)进行社交登录就足够了? 我可以继续列出这些示例,但是重点是我们应该针对每种情况单独解决问题,找到最佳解决方案。
我们的项目的独特性使它们变得复杂,因为它们具有不同的要求并服务于不同的目标。 能够在本地设置,尽快构建和部署任何复杂性的项目,对于当今的团队和公司而言,都是非常重要的标准。 根据项目的复杂性,其设置和配置可能需要几分钟到几小时或几天。 如果尚未将项目容器化,则将其设置和配置的时间乘以应运行该项目的计算机(本地,服务器)的数量。 当您与团队中或公司中的其他开发人员一起工作时,甚至您自己一个人工作时,时间就是您拥有的最昂贵的资源之一。 因此,花时间去做真正重要的事情非常重要。
容器化使当今的开发人员疯狂。 这是自互联网发明以来最大的创新之一(虽然并非如此,但对我们许多人而言,这仍然是非常重要的重要创新)。 它可以帮助我们以光速在任何环境中设置和配置任何项目(实际上不是,但与过去几年相比)。
Docker是当今容器化的先驱。 它确实功能强大,但是当然,与其他任何技术一样,它也有其优点和缺点。 对我们中的某些人来说,在良好的手中,它可以做不可能的事情,甚至是神奇的事情。 当我们第一次尝试Docker时,这改变了游戏规则。 我们对它的功能印象深刻,因此决定创建一个名为Poco的工具,该工具极大地改善了docker的工作流程。 在本文中,我想与您分享Poco如何帮助我们进行日常发展。
与其他快速增长的团队一样,在我们团队中自动设置本地环境的问题也早已提出。 我们的团队越大,对我们来说越难发展,那就是为新开发人员配置本地环境。 主要问题是每个开发人员都有独特的环境,这意味着,每次我们尝试建立本地环境时,我们都会遇到新的问题。 我们试图通过手册和检查表来解决这种情况,但是它们不能很好地工作,我们仍然有很多问题,并且我们仍然浪费大量时间弄清楚为什么某些事情不起作用。
Docker拯救了世界。 在尝试了docker之后,它为我们解决了很多问题。 我们真的很兴奋,非常兴奋,因此决定走得更远,让它变得更好。 我们对Docker本身没有任何问题。 从本质上讲,码头工人非常简单灵活。 相反,我们发现可以改善整个工作流程(搜索,克隆,启动)。 如果我们看一个普通的工作流程,它可能看起来像这样:
- 搜索并找到所需的项目
- 克隆项目
- 开始项目
尽管此工作流程看似简单,但可能会有很多问题:
- 有什么要求?
- 怎么开始呢?
- 如何启动所需的环境?
- 和更多…
有时可能需要一些时间。 即使使用docker本身,有时情况也会变得复杂,尤其是当我们必须处理复杂的项目时。 因此,在某个时候,我们考虑了如果仅用一个命令行就可以在任何环境中克隆和启动任何复杂性的任何项目,该怎么办。 我们找不到比以下任何简单的东西:
振作起来我的项目
信不信由你,这很容易,甚至经理也可以启动任何项目。
Poco是Git和Docker的一个小包装。 Git和Docker都是可选的,但在那种情况下,很难感受到Poco的强大功能。 如前所述,Poco的主要功能是仅使用一个命令行即可克隆并启动docker项目。 您可以创建自定义目录(注册表)来管理和组织项目。 您可以为多种运行模式(前端,后端,全栈,测试,生产,演示)创建多个计划。
Poco对于从事大量项目的开发人员和团队非常方便。
入门
要求:
- Python(https://www.python.org/downloads/)
- Git(https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- Docker(https://docs.docker.com/install/)
安装poco:
点安装poco
创建hello-world git存储库:
mkdir hello-world
cd hello-world
git初始化
初始化
这将创建poco.yaml:
版本:“ 2.0”
维护者:“ operation@shiwaforce.com”计划:
默认:
docker-compose.yml
和docker-compose.yaml:
版本:“ 2.0”
服务:
你好,世界:
图片:'ubuntu:14.04'
命令:“ / bin / echo'Hello world'”
现在您可以开始您的项目:
振作起来
如果一切正常,您应该看到:
helloworld使用图像,跳过
拉helloworld ...完成
服务:
你好,世界:
命令:/ bin / echo'Hello world'
图片:ubuntu:14.04
版本:“ 2.0”使用默认驱动程序创建网络“ hello-world_default”
创建hello-world_helloworld_1 ...完成
名称命令状态端口
-------------------------------------------------- ----------------
hello-world_helloworld_1 / bin / echo Hello world出口0
推送您的更改:
git remote add origin https://github.com/ user / repo .git
git添加
git提交...
git推
不要忘记用您的用户名替换用户 ,并用您的存储库名替换存储库。
现在,我们可以创建目录(注册表)并将项目添加到其中。 让我们创建一个新的git仓库:
mkdir poco-catalog
cd poco目录
git初始化
将poco-catalog.yml文件添加到根文件夹:
你好,世界:
档案:poco.yaml
git:https://github.com/ user / repo .git
repository_dir:你好,世界
推送更改:
git remote add origin https://github.com/ user / repo .git
git添加
git提交...
git推
现在,我们可以将目录添加到本地poco中:
poco repo添加我的目录https://github.com/ user / repo .git
其中repo是我们的poco-catalog存储库的名称。 如果一切正常,您应该看到类似以下内容:
目录配置已初始化:/Users/user/.poco/configActual config
-------------项目名称:无
工作目录:/ Users / user / workspace
模式:无
离线:False
始终更新:错误
配置位置:/Users/user/.poco/config
配置:
-------
我的目录:
repositoryType:git
服务器:git@github.com: 用户 / 仓库 .git
要显示所有可用项目,请运行:
poco目录
并且所有可用的项目都将被打印到控制台中:
-------------------
可用项目:
-------------------
你好,世界 ()
最后,当一切准备就绪时,我们可以通过运行以下内容启动项目:
poco up hello-world
它将克隆此项目到/ Users / user / workspace文件夹并启动它。
尝试现有示例
另外,您可以尝试poco-catalog-example。 只需将其添加到本地poco仓库中即可:
poco回购添加my-catalog git@github.com:shiwaforce / poco-catalog-example.git
并运行hello-world项目:
poco up hello-world
Poco是一个非常简单但功能强大的工具。 它可以为所有项目提供通用界面,因此开发人员将直观地知道如何开始其下一个现有项目。
尽管我在本文中展示了示例的简单性,但Poco仍然能够处理更复杂的项目,而且它是为处理非常复杂的项目而开发的。
Poco的可能性仅受您的想象力限制。
有关更复杂项目的详细文章即将发布。
了解更多:
https://getpoco.io
https://github.com/shiwaforce/poco