Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.4K
Views
Canalización de Azure Devops: archivo no encontrado en el contexto de compilación

Obtención de un error en la canalización de Azure DevOps:

 Step 7/17 : COPY ["demo6/demo6.csproj", "demo6/"] COPY failed: file not found in build context or excluded by .dockerignore: stat demo6/demo6.csproj: file does not exist

NOTAS: ejecute la canalización en modo de diagnóstico y el archivo .sln existe

 ##[debug]cwd=/home/vsts/work/1/s ##[debug] /home/vsts/work/1/s/demo6.sln (file) ##[debug] /home/vsts/work/1/s/demo6/demo6.csproj (file)

Tengo una solución Asp.Net Core multiproyecto con la estructura de carpetas y los proyectos de la siguiente manera:

 demo6 |--demo6/demo6.csproj |--demo6.api/demo6.api.csproj

La aplicación es demo6, que hace referencia a demo6.api, que es una biblioteca de clases.

Esto está en GitHub en un repositorio demo6. Modifiqué el Dockerfile generado automáticamente para agregar el demo6/ adicional para ver si eso funciona, pero no.

Agradezco cualquier ayuda.

Dockerfile a continuación:

 FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build WORKDIR /src COPY ["demo6/demo6.csproj", "demo6/"] RUN dotnet restore "demo6/demo6.csproj" COPY . . WORKDIR "/src/demo6" RUN dotnet build "demo6.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "demo6.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "demo6.dll"]

También probé esto:

 FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build WORKDIR /src COPY ["demo6/demo6/demo6.csproj", "ddemo6/"] RUN dotnet restore "ddemo6/demo6.csproj" COPY . . WORKDIR "/src/ddemo6" RUN dotnet build "demo6.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "demo6.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "demo6.dll"]

Tengo este error:

 Step 7/17 : COPY ["demo6/demo6/demo6.csproj", "ddemo6/"] COPY failed: file not found in build context or excluded by .dockerignore: stat demo6/demo6/demo6.csproj: file does not exist ##[error]COPY failed: file not found in build context or excluded by .dockerignore: stat demo6/demo6/demo6.csproj: file does not exist

aquí está la estructura del repositorio ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

El motivo del error de archivo no encontrado puede ser que la ruta relativa del Dockerfile y el csproj sean diferentes. Intente configurar el Dockerfile en la raíz de la solución para resolver su error.

También debe agregar un buildContext con la carpeta csproj .

buildContext : ruta al contexto de compilación

Además, aquí hay un caso al que puede referirse.

Una posible causa más de COPY falló: no se especificaron archivos de origen es el archivo .dockerignore presente en su espacio de trabajo

Busque el archivo .dockerignore porque la CLI (interfaz de línea de comandos) de docker envía contexto al daemon de docker para cargar el archivo .dockerignore.

Si el archivo .dockerignore existe en el contexto, es posible que haya una entrada de exclusión para ignorar el directorio de compilación

 # ignore or exclude build directory */build* */*/build*
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!