如何使用 docker-compose up 获取详细的错误消息?我只能看到“命令返回非零代码”

如何使用 docker-compose up 获取详细的错误消息?我只能看到“命令返回非零代码”

我正在尝试在 Linux 上运行我的 docker-container。在构建过程中,运行以下命令后遇到错误:

sudo docker-compose -f docker-compose.yml up --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

有什么方法可以看到详细的错误信息?

答案1

错误发生在构建过程中。运行时您应该会看到相同的结果docker-compose build

此错误:

standard_init_linux.go:211: exec user process caused "exec format error"

意味着 Docker 尝试在容器内运行dotnet可执行文件,但无法启动,因为dotnet镜像中的二进制文件与容器中的环境不兼容。也许是针对不同的架构编译的,或者类似情况?如果您展示其余的构建过程(步骤 1-9),我们可能可以帮您发现问题。

答案2

因为RUN命令据说是这样工作的:获取一个镜像,创建一个容器ContainerA,在这个容器中运行你的命令,并生成一个新的镜像ImageB。删除ContainerA,创建ContainerB……现在它在一次RUN时退出,所以它必须留下一个containerX。因此,你可以看到这样的日志:

docker build -t <yourname>:<tag>

出错时退出

docker logs <yourname>

这是您的详细错误日志。

相关内容