Вот наш скрипт Integration-tests.sh:
#!/bin/sh установить -е if [ "$1" = "построить"]; затем docker build -f ../docker/cir/Dockerfile -t реестр.{url}/cir2 .. docker build -f ../docker/db-restorer/Dockerfile -t реестр.{url}/cir-db-restorer ../docker/db-restorer docker build -f ../tests/scripts/Dockerfile -t реестр.{url}/pester.tests ../tests/scripts docker build -f ../tests/bruno/Dockerfile -t реестр.{url}/cir-bruno-tests ../tests/bruno фи ключ = $ (uuidgen) эхо "" echo "Создание сети..." Сеть Docker создает ключ Bridge-$Key эхо "" echo "Запуск сервера MSSQL..." mkdir -p /mnt/dock-temp/mssql-$key chmod 777 /mnt/dock-temp/mssql-$key mkdir -p /mnt/dock-temp/mssql-$key-backups chmod 777 /mnt/dock-temp/mssql-$key-backups запуск докера \ -д \ --name mssql-$key \ --hostname mssql \ --привилегированный \ --перезапускать всегда \ --pull всегда \ --network Bridge-$key \ -e "ACCEPT_EULA=Y" \ -e "MSSQL_SA_PASSWORD=$ключ" \ -e "MSSQL_COLLATION=utf8_general_ci" \ -v /mnt/dock-temp/mssql-$key:/var/opt/mssql \ -v /mnt/dock-temp/mssql-$key-backups:/var/backups \ реестр.{url}/mssql #сон 30 эхо "" echo "Восстановление резервной копии БД с диска Google..." запуск докера \ --рм \ --network Bridge-$key \ -v /mnt/dock-temp/mssql-$key-backups:/var/backups \ -e "DB_CIR_BACKUP={url}" \ -e "MSSQL_PASSWORD=$ключ" \ реестр.{url}/cir-db-restorer эхо "" echo "Запуск CIR2..." запуск докера \ -д \ --name cir2-$key \ --hostname cir2 \ --network Bridge-$key \ --перезапускать всегда \ -e "DATABASE__CONNECTIONSTRING=Server=mssql; Database=CIR; идентификатор пользователя={user}; пароль=$key; Encrypt=False; App=CIR2" \ -e "ASPNETCORE_ENVIRONMENT=Разработка" \ реестр.{url}/cir2 эхо "" echo "Выполнение интеграционных тестов..." запуск докера \ --рм \ --network Bridge-$key \ -e "REQUEST_DELAY=0" \ -e "API_URI=http://cir2/api/v1" \ -e "DB_CON_STRING=Server=mssql; Database=CIR; идентификатор пользователя={user}; пароль=$key; Encrypt=False; App=CIR_TESTS" \ реестр.{url}/pester.tests эхо "" echo "Выполнение тестов Бруно..." запуск докера \ --рм \ --network Bridge-$key \ -e "API_URI=http://cir2/api/v1" \ реестр.{url}/cir-bruno-tests **** эхо "" эхо "Очистка..." docker stop cir2-$key 2>/dev/null || истинный docker rm cir2-$key 2>/dev/null || истинный docker stop mssql-$key 2>/dev/null || истинный docker rm mssql-$key 2>/dev/null || истинный спать 5 rm -f -r /mnt/dock-temp/mssql-$key-backups rm -f -r /mnt/dock-temp/mssql-$key Сеть Docker rm Bridge-$key После завершения тестов Бруно сценарий просто завершает работу и останавливается и не продолжает работу в строке «Очистка...»

А вот Dockerfile для тестов Bruno
ОТ alpine:latest ENV API_URI "" ЗАПУСК apk добавить --no-cache \ nodejs НПМ ЗАПУСК npm install -g @usebruno/cli КОПИРОВАТЬ /BrunoTests/ /BrunoTests/ WORKDIR /BrunoTests CMD ["bru", "run", "--env", "Env Cir", "--output", "result.json"] Поэтому я бы хотел, чтобы мой скрипт Integration-tests.sh продолжался даже после завершения тестов Бруно и продолжал выполнять команды после этого. Если вам нужна дополнительная информация, дайте мне знать.