首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Amazon上部署jhipster注册中心

在Amazon上部署jhipster注册中心
EN

Stack Overflow用户
提问于 2018-03-23 11:13:10
回答 1查看 594关注 0票数 1

我正在用jHipster开发基于微服务的应用程序(但问题一般是针对spring配置的),为了开发目的,我使用了docker,现在我正在上创建舞台环境。

在将注册表连接到bitbucket以下载文件时,我遇到了一个问题。使用docker,我正在挂载一个包含ssh键的卷,该卷是访问BitBucket所必需的:

代码语言:javascript
复制
services:
jhipster-registry:
    image: jhipster/jhipster-registry:v3.2.3
    volumes:
         - /home/ubuntu/bb-key:/root/.ssh

我不知道如何将这个密钥传递给在ECS中运行的容器?

我不能将它直接放在EC2上--我不知道集群注册表中的哪个实例会启动。也许我必须把它放在s3上并更改注册表映像,以便从s3下载它?但听起来有点不对。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-10 19:35:39

我知道这有点晚,但是您可以添加用户环境变量。instance.html

就像Linux中的导出命令一样,您可以使用ECS将这些变量传递给docker实例,就像使用-e开关命令一样。这让你可以传递秘密。也许有一个更好的方法,但由于您可以限制对这些变量的访问,这可能是一个好方法。您只需要在docker映像中使用任何脚本就可以使用这些环境变量,因为变量可以超时更改,而不是我的脚本通常用来接受/查找环境变量并记录这些变量的图像。

在您的示例中,您可以编写一个脚本来导出rsa密钥文件中的SSH键,并导出字符串,因为它都是一行,并且有一个脚本来输出导出到.ssh目录中的文件。

echo $SSH_KEY > ~/.ssh/some_key只是在entry.sh脚本或类似的代码中使用这一行代码,您应该很好。因此,当容器启动时,它将将密钥输出到.ssh文件中。

另一种方法是,如您所述,使用一个S3桶并将键值对保留在其中,或者在本例中保留一个ssh键,并且ECS可以通过任务脚本或通过码头容器中的AWS命令加载这些值。但是,最后一部分意味着您需要将AWS添加到您的映像中,这可能不是一个选项,取决于您需要该映像的内容,并且需要一个小脚本才能在启动IE时运行一个条目脚本。

如果这不能解决你的问题,让我知道,我会重新研究这个答案,以更好地适应你的问题。但据我所知,这应该能让你在球场上看到你需要的东西。

另一种方法是创建一个API密钥,允许您根据不断变化的需求访问bitbucket回购或其他回购,并按您想要执行SSH键的方式输入该密钥,然后只需使用git命令中的变量来提取映像并使用http(s) (如果这是您的设置的选项)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49448410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档