У меня есть недавно созданное Dockerized веб-приложение, которое я хотел бы запустить на AWS ECS, и несколько фундаментальных концепций (которые я не вижу объяснения в документации AWS) сбивают меня с толку.
Во-первых, когда вы редактируете / настраиваете новый контейнер, он просит вас указать образ для использования, но затем также имеет раздел Среда:
Поля Точка входа, Командование и Рабочий каталог подозрительно похожи на команды, которые я уже указал при создании своего образа Docker (вот мой Dockerfile):
FROM openjdk:8
RUN mkdir /opt/myapp
ADD build/libs/myapp.jar /opt/myapp
WORKDIR /opt/myapp
EXPOSE 9200
ENTRYPOINT ["java", "-Dspring.config=.", "-jar", "myapp.jar"]
Итак, если ECS запрашивает у меня образ (который уже был создан с использованием этого Dockerfile), почему в tarnation мне нужно повторно указывать точно такие же значения для WORKDIR, EXPOSE, ENTRYPOINT, CMD и т. д.?!?
Также за пределами ECS я запускаю свой контейнер так:
docker run -it -p 9200:9200 -d --net = "host" --env-file ~/myapp-local.env --name myapp myapp
Обратите внимание, как я указываю файл env? Поддерживает ли ECS файлы env, или мне действительно нужно вводить каждую переменную env из моего файла env в этот пользовательский интерфейс?
Также я вижу, что внизу есть раздел Этикетки Docker:
Отличаются ли они от env vars или взаимозаменяемы?


Да, вам нужно добавить переменную среды через пользовательский интерфейс или через интерфейс командной строки.
Для CLI вам нужно передать его как шаблон JSON.
Также, если вы уже указали эти значения в Dockerfile, вам не нужно передавать эти значения снова.
Все значения, которые будут переданы извне, будут перезаписывать внутренние / значения по умолчанию в Dockerfile.