我正在尝试在 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>
这是您的详细错误日志。