запись файла из контейнера докера в экземпляр хоста на AWS - PullRequest
0 голосов
/ 04 июня 2018

Поэтому я использую Travis CI для автоматического развертывания моего приложения в среде AWS Elasticbeanstalk.У меня есть эта проблема, мне нужно обновить файл nginx.conf, который находится в файлах хост-машины.Я запускаю образ Docker из одного контейнера внутри хоста.Как я могу скопировать или связать файл nginx.conf из контейнера докера с файлом 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?

1 Ответ

0 голосов
/ 04 июня 2018

Клавиша «Объемы» используется для отображения полных томов, а не отдельных файлов.См. Описание файла Dockerrun.aws.json для объяснения .

Мне известны 2 способа решения этой проблемы: 1) пользовательский AMI или 2) использование Dockerfile с вашим Dockerrun.aws.json.

1.Создание пользовательского AMI

Идея создания пользовательского AMI заключается в запуске экземпляра из одного из существующих AMI Amazons.Вы вносите необходимые изменения (в вашем случае измените файл nginx.conf).Наконец, вы создаете новый AMI из этого экземпляра, и он будет доступен вам при создании среды в Elastic Beanstalk. Вот подробные инструкции по созданию собственного AMI и его использованию с Elastic Beanstalk .

2.Используйте Dockerfile с вашим Dockerrun.aws.json

Если вы не создаете свой собственный AMI, вы можете скопировать файл conf с помощью Dockerfile.Dockerfile - это текстовый файл, который предоставляет команды для запуска Elastic Beanstalk для создания собственного образа.В справочнике Docerfile подробно описаны команды, которые можно добавить в Dockerfile для создания образа.Вам нужно будет использовать команду Копировать или, если файл простой, вы можете использовать Run и echo, чтобы построить его, как в примере здесь .

Как только вы создадите свой Dockerfile, вам нужно будет поместить Dockerfile и ваш Dockerrun.aws.json в каталог и создать zip-файл с обоими.Предоставьте это Elastic Beanstalk в качестве исходного комплекта.Для правильной сборки исходного кода следуйте этому руководству .

...