Igor
Vladislav
Ненавижу их.
Andrew
Ребята, немного не по теме F#, но все же
Andrew
Кто то работал с докером в мультипроектном солюшне?
Andrew
Есть ентри поинт проект
Andrew
Веб апи
Andrew
У него есть зависимости
Andrew
В этом же солюшне
Vasily
И?
Andrew
Не получается сбилдить докером
Vladislav
Кто то работал с докером в мультипроектном солюшне?
Ну. Фронт + бек как два сервиса например
Vasily
А что пишет?
Vladislav
Не получается сбилдить докером
Точно настроил правильно?
Andrew
А что пишет?
Падает на dotnet publish т.к. не находит другие проекты
Andrew
Я так понимаю проблема в том что докерфайл с официального мануала говняный
Andrew
И копирует только текущую папку с проектом
Andrew
Но я не знаю как нормально сделать чтобы не завязываться на имена проектов
Andrew
Вот что есть сейчас FROM microsoft/dotnet:sdk AS build-env WORKDIR /app COPY *.csproj ./ RUN dotnet restore COPY . ./ RUN dotnet publish -c Release -o out FROM microsoft/dotnet:aspnetcore-runtime WORKDIR /app COPY --from=build-env /app/out . ENTRYPOINT ["dotnet", "SensorFusion.Web.App.dll"]
Andrew
А есть пример рабочего докерфайла для такого кейса?
Andrew
+ мне надо чтобы было 2 разных докерфайла (2 сервиса разных которые потом хочу связать через compose)
Vasiliy
Вот что есть сейчас FROM microsoft/dotnet:sdk AS build-env WORKDIR /app COPY *.csproj ./ RUN dotnet restore COPY . ./ RUN dotnet publish -c Release -o out FROM microsoft/dotnet:aspnetcore-runtime WORKDIR /app COPY --from=build-env /app/out . ENTRYPOINT ["dotnet", "SensorFusion.Web.App.dll"]
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base WORKDIR /app EXPOSE 80 FROM microsoft/dotnet:2.2-sdk AS build WORKDIR /src COPY PIK.BOP.Site/PIK.BOP.Site.csproj PIK.BOP.Site/ COPY PIK.BOP.Repository/PIK.BOP.Repository.csproj PIK.BOP.Repository/ COPY PIK.BOP.Common/PIK.BOP.Common.csproj PIK.BOP.Common/ COPY PIK.BOP.DataCore/PIK.BOP.DataCore.csproj PIK.BOP.DataCore/ COPY packages packages RUN dotnet restore PIK.BOP.Site/PIK.BOP.Site.csproj --configfile packages/nuget.config COPY . . WORKDIR /src/PIK.BOP.Site RUN dotnet build PIK.BOP.Site.csproj -c Release -o /app FROM build AS publish RUN dotnet publish PIK.BOP.Site.csproj -c Release -o /app FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "PIK.BOP.Site.dll"]
Vladislav
Я просто не понимаю в чем проблема
Vladislav
Ну, типо, не одна инструкция а две
Vladislav
Copy
Andrew
А
Andrew
Ну COPY То понятно
Andrew
Я еще путаюсь с путями
Andrew
Где физические а где докеровские
Andrew
WORKDIR докеровскую папку меняет?
Vasiliy
WORKDIR докеровскую папку меняет?
задает рабочу папку для инструкций
Andrew
Ну тоесть WORKDIR влияет на второй аргумент для COPY?
Andrew
Для корневую для второго аргумента COPY точнее
Dmitry
https://twitter.com/hillelogram/status/1119709859979714560?s=19
Andrew
Понял, спасибо)
Andrew
publish вроде сам его сделает
Vasiliy
да мы по шаблону сделали
Vasiliy
и еще у нас свои источнкии нугет пакетов
Vasiliy
configfile packages/nuget.config
Andrew
COPY failed: Forbidden path outside the build context
Andrew
Это я когда пытался добавить ../ в начало
Andrew
Чтобы достучаться к соседним проектам
Andrew
Я так понял у вас этот файл в папке где .sln лежит?
Andrew
нет, где проект .csproj
А как он тогда папки другие разрулил?
Andrew
С другими проектами
Andrew
А docker build ты вызываешь из какой папки?
Vasiliy
А docker build ты вызываешь из какой папки?
нет. ну я в студии. студия собирает. а куда ты написал ../?
Andrew
Я понял в чем проблема, постараюсь исправить и тогда скажу
Vasiliy
👌
Klei
А зачем restore делают отдельным шагом?
Если пакеты не менял, то рестора не будет, а значит и нового image-а. Если оставить только publish, то при правке кода, будут заного подгружаться пакеты.
Andrew
А, понял
Andrew
Так, новая проблема
Andrew
У меня SPA в проекте который паблишится
Andrew
Естественно там npm нужен
Vladislav
ну возьми для спа образ с нодой
Vladislav
и сделай его отдельно
Vladislav
апи отдельно
Andrew
Отдельно неудобно
Andrew
Мне для универа
Vladislav
тогда
Andrew
Ранить потом 2 сервера
Andrew
(
Vladislav
ну поставить ноду внутри из apt
Klei
Мне для универа
В универе докер осавивают? Или это побочное?
Andrew
Преподу нравится когда обмазываются этим всем + мне как раз нужно получить опыт работы с докером (уже для работы)
Andrew
У нас его завозят потихоньку
Andrew
Вообще я добавил FROM node:8.2 И оно начало качать ноду
Andrew
Жду когда закончит
Andrew
Вообще докер билдит жесть как долго