Docker Healthcheck не запускает команды powershell?

Я работаю с Docker и создал Dockerfile, который преобразует мое приложение dotnet в образ. Затем я могу запустить этот образ, и все работает нормально. Я использую базу AS mcr.microsoft.com/dotnet/core/sdk:3.1-nanoserver-1809.

Теперь я хотел добавить функцию «HealthCheck» в Docker. В этом HealthCheck я хочу использовать некоторую логику Powershell, но с того момента, как я использую Powershell, de HealthCheck классифицируется как неработоспособный.

Например:

HEALTHCHECK CMD powershell -command exit 0

В результате получается неработоспособный контейнер.

Например:

HEALTHCHECK CMD exit 0

Результат в здоровом контейнере

Любая логика powershell, которую я пытаюсь вставить, которая либо возвращает, либо выходит из 0, дает мне неработоспособные контейнеры. Прямо сейчас я думаю, что это powershell просто ошибается, какой бы ни была логика.

Кто-нибудь может намекнуть, что я делаю неправильно, чтобы получить вход в систему с помощью кода PowerShell внутри моей проверки работоспособности Docker? Мне нужен этот код powershell в HealthCheck по определенной причине, которая на самом деле не важна.

Спасибо


РЕДАКТИРОВАТЬ: я также пробовал:

HEALTHCHECK CMD powershell -command return 0

а также

HEALTHCHECK CMD powershell -command Write-Host 0

Оба с тем же результатом: нездоровый контейнер.


person BramCoding    schedule 04.08.2020    source источник
comment
Можете ли вы проверить, что такое код выхода, когда вы обычно запускаете эту команду powershell?   -  person Nick ODell    schedule 04.08.2020
comment
Если я запускаю «выход 0» в своем окне powershell, оно просто закрывает мое окно powershell. Согласно документам Docker Healthcheck, скажите мне: статус выхода команды указывает на состояние работоспособности контейнера. Возможные значения: 0: успех — контейнер исправен и готов к использованию 1: неработоспособен — контейнер работает неправильно 2: зарезервирован — не использовать этот код выхода Вот почему я пытаюсь сделать это так.   -  person BramCoding    schedule 04.08.2020
comment
Не могли бы вы создать скрипт с этой командой, запустить его и проверить код выхода? Извините, я не знаком с PowerShell; Я в основном пишу Bash.   -  person Nick ODell    schedule 04.08.2020
comment
Я, конечно, могу это сделать, сам не так хорошо знаком. Но что именно вы имеете в виду под «проверить код выхода»? Просто запустите специальный скрипт и посмотрите, что он делает?   -  person BramCoding    schedule 04.08.2020
comment
But what exactly do you mean with 'check the exit code'? Что-то вроде этого: stackoverflow.com/questions/24994595/   -  person Nick ODell    schedule 04.08.2020
comment
При запуске файла ps1 с «выходом 0» внутри, а затем получении $LastExitCode я печатаю 0. При запуске файла ps1 с «выходом 1» внутри и последующем получении $LastExitCode я печатаю 1. Поэтому я не вижу причин, по которым это не должно работать в Docker Healthcheck.   -  person BramCoding    schedule 04.08.2020