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

好的,我是一个全面的noob在devops,但请忍受我,我尽我所能解释我的困境。

现在我有一个Java应用程序(目前托pipe在heroku上),代码在GitHub中可见。 可见的代码不能直接部署。 有2-3个像applications.properties这样的特权文件,其中包含我们的一些其他的Auth文件等,由于明显的安全原因,这些文件不能放在GitHub上。 我们还使用Heroku的ClearDB插件提供给我们的MySQL数据库。

现在的解决方法是这些文件只存在于Heroku git remote中,并且设置为去。 无论何时我们想重新部署,我们切换到Heroku远程,从主服务器拉代码更改,并推动它自动部署。

现在,我们正在从Heroku转移到Cycle.io或Amazon Web Services 。 build立一个AWS将是相当直接的,但是Cycle.io使用docker镜像。 我在这里有几个问题。

  1. Cycle.io为我们提供了一个部署,我没有看到任何提供的数据库的讨论。 我们从哪里得到一个数据库? 我们有什么select? Cycle.io允许我们创buildEnvironments 。 去引用

环境允许用户组织相关的容器组。 创build环境时,Cycle会自动创build一个专用networking来连接内部的容器。

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

  1. 如果我们考虑为cycle.io使用Docker镜像,那么最好的工作stream程是什么? 会是这样的吗?

    • 在我的系统上build立一个docker图像
    • 将其推送到Docker Hub到一个私有存储库,并允许与Docker集线器集成的cycle.io从那里接收它
  2. 周期说

通过两个简单的步骤来部署容器:只需从Docker Hub或任何Git仓库中提取生产就绪的镜像,然后单击导入镜像。

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

  1. 拥有像Heroku一样的“私人”git分支的最佳方式是什么? 我知道我想添加一个私人的远程,但我喜欢怎么做呢? 我应该让公共分支机构保持私人文件的私人保pipe箱吗?

  1. 有多种方式可以“获得”一个数据库。 最简单的是使用某种pipe理解决scheme,对于mysql来说有很多select – 最stream行的是Google的云数据库和AWS的RDS数据库。 你也可以安装一个MySQL数据库作为容器,但是我不知道Cycle.io是否提供这个服务。 最好的办法是用这个问题来处理Cycle.io,并询问哪个mysql解决scheme最好与他们的产品集成,或者selectAWS(弹性beanstalk是一个很好的服务,用于运行docker容器,并且可以提供一个mysql实例作为数据层)
  2. 你build议的stream程工作。 更好的stream程将包括某种CI / CDpipe道,可以在将代码推送到github时自动构build图像,而不是将其部署到AWS / cycle.io。 我们正在使用CircleCI,它提供1个免费的小容器容器,非常适合这些用途。
  3. 你从来没有把实际的docker图像放在github上。 你应该做的是添加一个dockerfile到回购,并从中build立图像。 我猜cycle.io正在为你提供这个选项 – 从你放入回购站的dockerfile自动构build图像。 这是我们用CirclCIbuild立我们的图像的方式。
  4. 部署密钥对于此目的非常有用。 您创build一个,并只允许授权的服务与您的回购使用该密钥进行通信。