Как отобразить изменения приложения .NET из Docker и перестроить? - PullRequest
0 голосов
/ 24 декабря 2018

В настоящее время я разрабатываю NET Application, и мне нужно запустить bash-сценарии, которые:

  • 1. Build проект

  • 2. dotnet publish -c Release проект

  • 3. copy папка publish с путем для Dockerfile для принятия.

Можно ли это сделать прямо из dockerfile?

Что я сейчас запускаю:

Bash-скрипт

dotnet build  ../${serverSrcFolder} &&
dotnet publish -c Release ../${serverSrcFolder} --output $(pwd)/${serverPublishDestFolder} 

Dockerfile

FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY . /app
ENTRYPOINT [ "dotnet" , "./publish/Server.dll" ]
EXPOSE 9400
EXPOSE 6379

Папка publish находится рядом с dockerfile.

  • ParentFolder
    • Dockerfile
    • publish

serverPublishDestFolder из приведенного выше сценария bash - это папка publish.

Могу ли я как-нибудь всегда сопоставитьПапка publish всякий раз, когда она изменяется из dockerfile?

1 Ответ

0 голосов
/ 26 декабря 2018

Вы можете сделать три шага выше внутри Dockerfile

например

ROM microsoft/dotnet:2.1.5-aspnetcore-runtime AS base
WORKDIR /app
ENV ASPNETCORE_URLS http://+:5000
EXPOSE 5000

FROM microsoft/dotnet:2.1.403-sdk AS build
WORKDIR /src
COPY src/WebApi/WebApi.csproj src/WebApi/
RUN dotnet restore src/WebApi/WebApi.csproj
COPY . .
WORKDIR /src/src/WebApi
RUN dotnet build WebApi.csproj -c Release -o /app 

FROM build AS publish
RUN dotnet publish WebApi.csproj -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApi.dll"]

Это Dockerfile может быть легко сгенерировано Visual Studio 2017

...