hacemos uso del MultiStage para la generacion de una imagen de menor tamaño

This commit is contained in:
Jose Pino 2018-12-27 14:13:24 -03:00
parent 732270e433
commit cbb620bcbb
2 changed files with 27 additions and 4 deletions

View File

@ -1,5 +1,8 @@
FROM microsoft/dotnet:2.2-sdk
FROM microsoft/dotnet:2.2-sdk AS build
COPY . ./docker-test
WORKDIR /docker-test/
RUN dotnet build -c Release
ENTRYPOINT ["dotnet", "run", "-c", "Release", "--no-build"]
RUN dotnet build -c Release -o output
FROM microsoft/dotnet:2.2-runtime AS runtime
COPY --from=build /docker-test/output .
ENTRYPOINT ["dotnet", "docker-test.dll"]

View File

@ -42,4 +42,24 @@ REPOSITORY TAG IMAGE ID CREATED
docker-test latest 8e0d17fcfbbb 2 hours ago 1.74GB
```
1.74 GB que deberia ser utilizada solo para un Hola Mundo !!!
1.74 GB que deberia ser utilizada solo para un Hola Mundo !!!, ahora con MultiStage se puede utilizar una imagen para "compilar" y otra imagen para correr la aplicación que por supuesto utiliza mucho menos espacio.
```
FROM microsoft/dotnet:2.2-sdk AS build
COPY . ./docker-test
WORKDIR /docker-test/
RUN dotnet build -c Release -o output
FROM microsoft/dotnet:2.2-runtime AS runtime
COPY --from=build /docker-test/output .
ENTRYPOINT ["dotnet", "docker-test.dll"]
```
con esto logramos que la imagen de la aplicacion sea de solo 180 MG
```
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 63fb9180b95b 2 minutes ago 180MB
```
Podriamos pensar que 180 MB es mucho para un simple "Hola Mundo", pero considerando que no se requiere nada para poder ejecutar solo Docker, nos olvidamos de ... "en mi maquina funciona".