Как я могу использовать Hashicorp Packer для создания образа EC2, который запускает образ Docker при запуске? - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь создать Amazon AMI, который содержит докер, работающий в качестве демона, запускает определенный образ с подключенного тома с хоста и устанавливает некоторое программное обеспечение и данные в образ докера (который попадет в подключенный том),Я хотел бы, чтобы полученный AMI запускал тот же образ докера при запуске с тем же подключенным томом.Цель состоит в том, чтобы создать образ EC2, который использует предварительно созданный образ докера, который другие пользователи могут использовать за пределами EC2, чтобы выполнить тот же процесс установки, чтобы позволить пользователям, не являющимся Amazon, воспроизводить процесс.Задача AMI - помочь группе пользователей получить простой пользовательский опыт.

В прошлом я использовал Packer для чего-то подобного (https://github.com/seandavi/terraform-can/tree/master/packer),, но я хотел бы представить пример с докером, и я не совсем уверен в подходе. Любые примеры или указатели приветствуются,но процесс выглядит так:

Сборка внутри упаковщика:

  1. установка механизма докера
  2. запуск образа докера со смонтированным томом
  3. exer docker exec вобраз для установки программного обеспечения и данных на подключенный том

Как настроить AMI через упаковщик для запуска того же образа с подключенным томом при запуске AMI после сборки?

1 Ответ

2 голосов
/ 16 июня 2019
  1. Вы должны создать свой образ докера вне упаковщика.Я не вижу причины, по которой вам нужно испечь AMI, а в процессе выпечки AMI создать образ докера.

  2. Вы можете использовать раздел пользовательских данных AMI / EC2чтобы иметь возможность запустить Docker-контейнер при первой загрузке экземпляра.

  3. Я не думаю, что вам нужно использовать Packer для этого, и вы сможете сделать это, просто используя возможности пользовательских данных EC2.

  4. Если вам действительно нужно собрать / запечь AMI, посмотрите на это: https://www.packer.io/docs/builders/amazon-ebs.html#user_data Это должно помочь вам настроить соответствующие команды запуска докера.

Дажеесли вы решите не создавать образ докера отдельно, пользовательские данные все равно смогут помочь вам выполнить все необходимые вам команды.

Примечание:

a.Вам нужно присоединить том при запуске док-контейнера, я не знаю, как подключить его после факта.

b.Скрипты User-Data запускаются только при первой загрузке экземпляра.Если ваш экземпляр будет запускаться и останавливаться, вам нужно написать соответствующий скрипт / использовать upstart / systemd, чтобы запускать его каждый раз при перезагрузке экземпляра.

...