Created
July 8, 2020 02:28
-
-
Save angelobelchior/ece19ceab7079aa6a043da743ac28b48 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#vai no repositório de containers da MS e baixa a imagem do aspnet dando o nome de base | |
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base | |
#cria uma pasta chamada app dentro da "imagem" | |
WORKDIR /app | |
#expõe a porta 80 do container (HTTP) | |
EXPOSE 80 | |
#expõe a porta 443 do container (HTTPS) | |
EXPOSE 443 | |
#vai no repositório de containers da MS e baixa a imagem do donet core dando o nome de build | |
#isso é feito para compilar a versão da aplicação especificamente para o SO setado no docker | |
#(caso seja linux, é equivalente a algo como dotnet build --runtime ubuntu.xxxx) e não da forma híbrida | |
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build | |
#cria uma pasta chamada src dentro da "imagem" | |
WORKDIR /src | |
#copia para a pasta src o conteúdo da pasta onde se encontra o dockerfile. Nesse caso, ele copia todo o código fonte da nossa aplicação | |
COPY . ./ | |
#com todo código fonte copiado para a pasta src, é executado o comando de restore da solution | |
RUN dotnet restore "WebApplication1.sln" | |
#utiliza novamente o sdk do .netcore, mas dessa vez com o nome de publish | |
FROM build AS publish | |
#executa a publicação da aplicação na pasta app/publish | |
RUN dotnet publish "WebApplication1\\WebApplication1.csproj" -c Release -o /app/publish --no-restore | |
#utiliza novamente o aspnetcore, mas dessa vez com o nome de final | |
FROM base AS final | |
#vai para a pasta app | |
WORKDIR /app | |
#copia tudo que está na pasta publish/app para a pasta corrente da imagem /app | |
COPY --from=publish /app/publish . | |
#executa a aplicação | |
ENTRYPOINT ["dotnet", "WebApplication1.dll"] | |
#você precisa estar na pasta onde fica o dockerfile no terminal | |
#comando para fazer o build da imagem | |
# -t => target | |
# . é a pasta onde fica o dockerfile (no caso, no terminal, é preciso dar um cd para a pasta antes de executar esse comando) | |
#caso queria especificar o arquivo docker file, passar o parâmetro -f <<caminho do arquivo>> | |
#docker build . -t webapp:dev | |
#comando para executar o container | |
#-d roda como serviço (daemon) | |
#-p faz o mapeamento das portas da sua máquina para a porta do container -p PORTA DA SUA MÁQUINA : PORTA DO CONTAINER | |
#--name nome do container | |
#e por fim nome da imangem (caso tenha um label, setar depois dos :) | |
#docker run -d -p 8096:80 --name NomeDoContainer webapp:dev |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment