[英]writing file from docker container to host instance on AWS
因此,我正在使用Travis CI将应用程序自动部署到AWS Elasticbeanstalk环境。 我有这个问题,我需要更新主机文件中的nginx.conf文件。 我在该主机内运行单个容器Docker映像。 如何将nginx.conf文件从docker容器复制或链接到主机nginx.conf文件。 目前,我的Dockerrun.aws.json如下所示:
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "some:image:url:here",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "8001"
}
],
"Volumes": [
{
"HostDirectory": "/etc/nginx/nginx.conf",
"ContainerDirectory": "/home/node/app/nginx.conf"
}
]
}
当我尝试使用dockerrunversion:2时,它在版本上给我一个错误,表明版本错误。 如何将这两个文件与Single Container Docker应用程序链接?
“卷”键用于映射完整卷,而不是单个文件。 请参阅Dockerrun.aws.json 文件规范以获取解释 。
我知道有两种方法可以解决此问题:1)自定义AMI或2)在Dockerrun.aws.json中使用Dockerfile。
构建自定义AMI的想法是从Amazon现有的AMI之一启动实例。 您需要对其进行更改(在您的情况下,请更改nginx.conf)。 最后,您从该实例创建一个新的AMI,当您在Elastic Beanstalk中创建环境时,该AMI将可供您使用。 以下是创建您自己的AMI的详细步骤以及如何将其与Elastic Beanstalk一起使用 。
如果您不构建自己的AMI,则可以在Dockerfile
的帮助下复制conf文件。 Dockerfile是一个文本文件,可向Elastic Beanstalk提供命令以运行以构建您的自定义映像。 Docerfile参考详细介绍了可以添加到Dockerfile中以构建映像的命令。 你将需要使用复制命令,或者如果该文件是简单的,你可以使用Run
和echo
建立它像例子在这里 。
创建Dockerfile之后,您需要将Dockerfile和Dockerrun.aws.json放入目录中,并同时创建一个zip文件。 将此作为源捆绑包提供给Elastic Beanstalk。 请按照本指南正确构建源包。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.