从Heroku切换到Docker平台Cycle.io问题

时间:2016-11-27 11:27:07

标签: git heroku docker devops

好的,我是devop的总菜鸟,但请耐心等待我,我已经尽力解释我的困境。

现在我有一个Java应用程序(目前托管在heroku上),代码在GitHub上可见。但是,可见的代码无法直接部署。有一些特权文件,如applications.properties,其中包含我们的,其他几个Auth文件等,出于明显的安全原因,这些文件无法在GitHub上提供。我们还使用Heroku的ClearDB插件提供给我们的MySQL数据库。

现在的解决方法是这些文件只存在于Heroku git遥控器中并设置为go。每当我们想要重新部署时,我们都会切换到Heroku远程,从master下拉代码并将其推送到自动部署。

现在,我们正从Heroku转移到Cycle.ioAmazon Web Services。设置AWS将非常简单,但Cycle.io使用docker镜像。我在这里有几个问题。

  1. Cycle.io为我们提供了一个部署,我没有看到任何关于提供的数据库的讨论。我们从哪里/从哪里获得数据库?我们有什么选择? Cycle.io允许我们创建Environments。引用
  2.   

    环境允许用户组织相关容器组。   创建环境后,Cycle会自动创建一个私有环境   网络连接里面的容器。

    这是否设置了某种可以设置MySQL数据库的Linux环境?我是否必须为MySQL映像设置Docker映像并允许代码映像与之通信?

    1. 如果我们考虑将docker镜像用于cycle.io,那么最佳工作流程是什么?它会是这样的吗?

      • 在我的系统上构建一个支持者图像
      • 将它推送到Docker Hub到私有存储库并允许cycle.io,它与docker hub集成以从那里接收它
    2. 周期说

    3.   

      通过两个简单的步骤部署容器:简单地拉动你的容器   来自Docker Hub或任何Git仓库的生产就绪图像,然后单击   导入图片。

      我如何在GitHub上托管docker镜像。我的意思是你不应该真的在GitHub上托管文件吗? Docker Hub更有意义。或者这是否意味着它获取代码并将其编译为docker镜像?

      1. 拥有像heroku一样的'私人'git分支的最佳方法是什么?我知道我想添加一个私人遥控器但是我该怎么做呢?我应该让公共分支机构像专用文件的私人保管箱一样保留吗?

1 个答案:

答案 0 :(得分:0)

  1. 有多种方法可以“获取”数据库。最简单的一种是使用某种托管解决方案,对于mysql,有很多选项 - 最受欢迎的是谷歌的google和AWS的RDS。您也可以将MySQL数据库安装为容器,但我不知道Cycle.io是否提供该服务。你最好的办法是用这个问题来处理Cycle.io并询问哪个mysql解决方案最好与他们的产品集成,或者选择AWS(弹性beanstalk是运行docker容器的好工具,并且可以提供mysql实例作为数据层)< / LI>
  2. 您建议的流程有效。更好的流程将包括某种CI / CD管道,它可以在您将代码推送到github时自动构建映像,而不是将其部署到AWS / cycle.io。我们正在使用CircleCI,它为小型构建提供1个免费容器,非常适合这些用途。
  3. 您永远不会将实际的泊坞窗图像放在github上。你应该做的是将一个dockerfile添加到repo,并从中构建图像。我猜测cycle.io正在为你提供这个选项 - 自动从你在repo中放入的dockerfile构建图像。这是我们使用CirclCI构建图像的方式。
  4. 部署密钥对此非常有用。您创建一个并且只允许授权服务使用该密钥与您的仓库进行通信。