我有一个非常有趣的问题 . 以下是我目前在经典模式下在Amazon EC2中部署的工作流程 .
-
在我公司的网络中部署主机 .
-
Deploy Target是AWS中的EC2计算机 .
-
在公司的git帐户中有自定义ruby宝石(因此无法从我公司网络外部安装宝石) .
-
克服第3点提到的问题 . 我在部署主机和部署目标之间使用了反向隧道 .
-
我正在使用capistrano进行部署 .
现在问题出现了,当我们决定从Amazon Classic迁移到Amazon VPC时,部署目标只有私有IP地址 . 这是我在VPC实例中部署代码时考虑的工作流程 .
-
在Amazon VPC中创建部署主机并将公共DNS附加到它,以便我可以从我的主要部署主机(位于我公司的网络内)访问它 .
-
通过从AWS部署主机运行部署脚本来部署代码 .
问题是我无法找到一种方法来安装托管在我公司的git帐户中的宝石 . 你能帮我解决这个问题吗?
2 回答
在部署之前,您只需通过推送到AWS部署主机中的git裸存储库来设置 生产环境 存储库的git镜像 .
然后,AWS部署主机也可以访问您的VPC,以便您可以从那里进行部署 .
希望能帮助到你 .
首先下载gem,然后使用scp将其传递给vpc中的ec2实例
然后从文件夹运行
gem install gem-name
,它将从与名称匹配的文件夹中安装gem .运行
bundle package
,这将下载所有宝石,并将出现在vendor/cache
文件夹中 . 现在将此文件移动到ec2实例 .