Запуск докера в AWS ECS и передача файла env

Мне нужно запустить контейнер докеров в AWS ECS. У меня НЕТ доступа к исходному коду изображения. Это частное изображение из частного репо, которое я загрузил в AWS ECR. Я создал определение задачи AWS ECS для запуска контейнера внутри службы в кластере. Изображение отображается как работающее, но я не могу открыть его через браузер. Я знаю, что все сетевые настройки верны, потому что я могу запустить простое hello world приложение, которое я также развернул для тестирования.

Еще есть команда, которую мне нужно запустить раньше: docker run --env-file <environment_variables_file> <image>:<tag> rake db:reset && rake db:seed.

Согласно инструкциям для этого образа докера, команда запуска для него: docker run -d --name <my_image_name> --env-file <environment_variables_file> -p 8080:80 <image>:<tag>.

Я могу без проблем запустить этот образ локально на своем ноутбуке, проблема заключается в его развертывании на AWS. У меня вопрос: как добавить environment_variables_file к изображению? Куда загрузить файл и как его передать? Как запустить команду для инициализации БД перед запуском образа?


person El Moreno    schedule 24.02.2020    source источник


Ответы (2)


С ноября 2020 года ECS поддерживает файлы env (запись в блоге), но они должны размещаться на S3:

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html


Вставка самого необходимого для справки. Под определением контейнера:

"environmentFiles": [
  {
    "value": "arn:aws:s3:::s3_bucket_name/envfile_object_name.env",
    "type": "s3"
  }
]

Роль выполнения задачи также требует следующих разрешений:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::s3_bucket_name/envfile_object_name.env"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::s3_bucket_name"
      ]
    }
  ]
}
person Martti Laine    schedule 30.12.2020

Amazon ECS не поддерживает файлы переменных среды. Вы можете установить переменные среды внутри определения задачи. Например:

"environment" : [
    { "name" : "string", "value" : "string" },
    { "name" : "string", "value" : "string" }
]

Дополнительные сведения см. В следующих инструкциях.

Обновление:

AWS теперь предоставляет возможность -

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html.

person Marko Medojević    schedule 24.02.2020