我是 Docker 新手,我正在尝试构建 ASP.NET Core 和 React 应用程序,但在使用 Docker Compose 时遇到问题。当后端 Dockerfile 运行时,我收到错误“无法解决:lstat /var/lib/docker/tmp/buildkit-mount41583267/#:没有这样的文件或目录”。
这是该文件:
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /app
COPY . .
RUN dotnet restore
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS final
WORKDIR /app
COPY --from=build /app/out .
EXPOSE 80
ENV ASPNETCORE_URLS=http://+:80
ENTRYPOINT ["dotnet", "TestApp.dll"]
这是我的后端 docker-compose.yml:
version: '3.8'
services:
backend:
build:
context: ./TestApp
dockerfile: Dockerfile
environment:
ASPNETCORE_ENVIRONMENT: Production
MONGODB_URI: ${MONGODB_URI}
ports:
- "5000:80"
以上是文件夹结构。
我尝试重新启动 Docker Desktop,清理并重建解决方案,检查 .dockerignore 文件是否有错误忽略,但我就是无法让它工作。
解决了。
我在 docker-compose.yml 中将服务命名为“backend”,并且在 docker-compose.override.yml 中仍然使用旧名称(在我的例子中为“testapp”)。匹配这两个文件中的服务名称解决了我的问题。