net hub for dotnet developers asp .net docker asp.net-core .net-core dockerfile

hub - Construya la ventana acoplable en ASP.NET Core: error "no existe tal archivo o directorio"



dotnet sdk docker hub (2)

Cuando usa la opción "Agregar soporte de Docker" en Visual Studio 2017, VS genera un montón de archivos de Docker-Compose y Dockerfiles. Como mencionó Marcin Zablocki, uno de estos es docker-compose.ci.build.yml .

Para mantenerse en línea con la filosofía de Docker, puede usar un contenedor acoplable para publicar su proyecto. Para publicar tu proyecto deberías seguir los siguientes pasos:

  1. git clone/pull su proyecto y cd en el directorio raíz
  2. Publique su proyecto con docker-compose -f docker-compose.ci.build.yml up
  3. Comienza tu proyecto con docker-compose up

Me he encontrado con situaciones en las que el Dockerfile de su proyecto principal está dando problemas. Esto sucede con FROM microsoft/aspnetcore:1.1 , puede cambiarlo a FROM microsoft/aspnetcore:1.1.2 o la versión que sea necesaria para su proyecto.

Estoy recibiendo un error cuando construyo mi ventana acoplable.

Sending build context to Docker daemon 3.584 kB Step 1/8 : FROM microsoft/aspnetcore:1.1 ---> 2628aaa7b8cf Step 2/8 : ENV ASPNETCORE_URLS "http://*:5000" ---> Using cache ---> 5dffde204fef Step 3/8 : ENV ASPNETCORE_ENVIRONMENT "Development" ---> Using cache ---> 3064358bc0eb Step 4/8 : ARG source ---> Using cache ---> 4159d0eb78c0 Step 5/8 : WORKDIR /app ---> Using cache ---> 61a394c84304 Step 6/8 : EXPOSE 5000 ---> Using cache ---> c7c2309f7085 Step 7/8 : COPY ${source:-obj/Docker/publish} . lstat obj/Docker/publish: no such file or directory

Aquí está mi Dockerfile.

FROM microsoft/aspnetcore:1.1 ENV ASPNETCORE_URLS="http://*:5000" ENV ASPNETCORE_ENVIRONMENT="Development" ARG source WORKDIR /app EXPOSE 5000 COPY ${source:-obj/Docker/publish} . ENTRYPOINT ["dotnet", "ProjectTestApi.dll"

y ejecuto un comando:

$ docker build -t my-docker-image-test .

¿Tienes alguna idea de lo que está mal?


Está sucediendo porque no publicaste tu solución. El mensaje de error se explica por sí mismo:

no such file or directory

De forma predeterminada, cuando agrega soporte Docker a su proyecto ASP.NET Core Visual Studio 2017, crea un montón de archivos docker-compose.yml , uno de ellos es docker-compose.ci.build.yml que maneja el proceso de compilación. Luego, cuando construye el proyecto a través de Visual Studio, se ejecuta la canalización completa de la docker-compose .

El contenido de docker-compose.ci.build.yml es similar a esto (depende de la configuración personalizada y los nombres de los proyectos, obviamente):

version: ''2'' services: ci-build: image: microsoft/aspnetcore-build:1.0-1.1 volumes: - .:/src working_dir: /src command: /bin/bash -c "dotnet restore ./SolutionName.sln && dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish"

Como puede ver en la última línea, hay un comando de dotnet publish invocado, que en realidad construye y publica su proyecto.

Entonces, la solución para su problema , será simplemente construir el proyecto antes de llamar a la ventana acoplable:

dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish docker build -t my-docker-image-test .