Нет. Для запуска тестов требуется SDK. Тем не менее, можно использовать слои, чтобы удалить эту зависимость из окончательного изображения. Например, если ваша конечная цель состояла в том, чтобы иметь только запущенное приложение, но вы хотели сначала собрать и протестировать его внутри контейнера, прежде чем запускать его, вы можете выполнить:
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
# do your build, test, publish
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
# copy published files from build-env
В конце концов, ваше изображение будет ссылаться только на среду выполнения ASP.NET Core, а не на SDK. Следует отметить, однако, что это будет запускать ваши тесты при создании образа, а не при каждом запуске контейнера. Однако этого должно быть достаточно, поскольку, если тесты пройдены во время сборки, опубликованное приложение в окончательном образе будет работать. Там действительно нет необходимости проверять это снова и снова. Однако, если вы хотите получить изображение, полностью посвященное тестированию, вам нужно создать образ SDK.
Передайте вывод по каналу grep к head -n 1
; это вытянет (и перейдет), первая строка, и проигнорируйте остальных (т.е. уничтожьте исходный канал).
for pattern in $(< ~/patterns.txt); do
echo "$pattern"
for i in *.bz2; do
bzgrep -i "$pattern" "$i" && break
done
done
Можно хотеть добавить-H к grep для отображения filename:line, а не просто строки.
Можно хотеть использовать -q
(--quiet
иначе --silent
) переключатель. Затем проверьте, чтобы видеть если команда, завершенная успешно или нет. Это ничего не производит и прекращает искать непосредственно после нахождения соответствия и просто возвращает успешность или неуспешность.
Вот пример:
for i in ~/bin/*; do grep -m 1 lua $i /dev/null && break; done
Те же работы с bzgrep
; после первого успешного соответствия Вы выходите из цикла.
Включая /dev/null
получает Вас имя файла в случае, если у Вас есть своего рода динозавр grep, который не распознает -H
опция.
Если вы используете подтверждение на http://betterthangrep.com/ , вы можете использовать флаг -1 именно по этой причине.