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:
-
git clone/pull
su proyecto y cd en el directorio raíz - Publique su proyecto con
docker-compose -f docker-compose.ci.build.yml up
- 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 .