Я пытаюсь запустить свой докер-контейнер на Linux. Во время сборки я обнаружил ошибку после выполнения этой команды:
sudo docker-compose -f docker-compose.yml вверх --build
docker-compose показывает это сообщение:
Step 10/19 : RUN dotnet restore "test/test.csproj"
---> Running in ea65364853f3
standard_init_linux.go:211: exec user process caused "exec format error"
ERROR: Service 'test' failed to build: The command '/bin/sh -c dotnet restore "test/test.csproj"' returned a non-zero code: 1
Есть ли способ увидеть подробное сообщение об ошибке?
Ошибка возникает в процессе сборки. Вы должны увидеть те же результаты, когда запустите docker-compose build
.
Эта ошибка:
standard_init_linux.go:211: exec user process caused "exec format error"
означает, что Docker пытался запустить dotnet
исполняемый файл внутри контейнера, но он не может запуститься, потому что dotnet
двоичный файл в образе несовместим со средой в контейнере. Возможно, он скомпилирован для другой архитектуры или что-то в этом роде? Если вы покажете остальную часть процесса сборки (шаги 1–9), мы, вероятно, сможем определить проблему за вас.
Так как RUN
говорят, что команды работают следующим образом: получить изображение, создать контейнер ContainerA, запустить вашу команду в этом контейнере и сгенерировать новый образ ImageB. удалить ContainerA, создать ContainerB ... Теперь он завершается за один RUN, поэтому он должен оставить containerX позади. Следовательно, вы можете увидеть такой журнал:
docker build -t <yourname>:<tag>
выйти при ошибке
docker logs <yourname>
вот ваш подробный журнал ошибок.