#.net #amazon-web-services #docker #amazon-ec2
#.net #amazon-веб-сервисы #docker #amazon-ec2
Вопрос:
У меня есть очень простое приложение, которое выполняет запись в файл, и поскольку запись в файл выполняется в бесконечном цикле, код не завершается. И я хочу, чтобы это было в контейнере docker и было в AWS.
Локальная настройка:
Я попробовал решение на локальном, и, похоже, все работает нормально. Ниже приведен код:
static void Main(string[] args)
{
string path = @"c:dataMyTest.txt";
int i = 0;
while (true)
{
string createText = $" {i} Hello and Welcome" Environment.NewLine;
File.AppendAllText(path, createText);
i ;
}
}
Команды Docker:
docker build -t test:1.0 .
docker run -v c:data {ImageID}
Когда я запускаю приведенную выше команду, я использую Docker Volumes
и я вижу, что создается случайная папка в ../docker/fasdfasdfas/_data
, и я вижу, MyText.txt
что туда постоянно записывается и мой CONTAINER NEVER STOPS
.
Пока все хорошо
Теперь шаги AWS:
- Загрузил изображение в один из экземпляров EC2 на базе Windows.
Теперь, когда я запускаю ту же команду
docker run -v c:data {ImageID}
контейнер запускается и немедленно останавливается. Не уверен, что здесь происходит.
Файл Docker:
# getting base image
FROM microsoft/windowsservercore:latest
ADD ./bin/debug /exe/
ENTRYPOINT ["/exe/BackendService.bat"]
BackendService.bat
start c:exeConsoleApp16.exe
Я проверил журналы и там тоже не вижу никакой проблемы
Ответ №1:
В вашем dockerfile c:data
каталог не создан.
Если проблема не в этом, зарегистрируйте или распечатайте сообщения об ошибках, а затем запустите docker logs CONTAINER_NAME
или kubectl logs -p POD_NAME
для проверки на наличие ошибок.