Используя поддержку док-станции VIsual Studio 2017 Out-of-the-Box (OOB), я могу собрать и запустить свой контейнер в своем решении Visual Studio с помощью кнопки F5 - это успешно запускает контейнер моего веб-сайта, иЯ вижу свой сайт!Я заметил, что для этого используется docker-compose (УСПЕХ).
НО
Я хочу понять, как запустить контейнер из командной строки, без Visual Studio.
Сначала я строю свои изображения в режиме выпуска (Visual Studio).Это приводит к созданию ДВУХ новых изображений (на изображениях докера показано одно без имени, а другое с именем, которое я определил в docker-compose.yml).[Вопрос: почему создается дополнительное изображение?)
docker-compose.yml:
services:
mssql:
image: microsoft/mssql-server-linux:2017-latest
container_name: sql1
ports:
- 1433:1433
environment:
SA_PASSWORD: "password"
ACCEPT_EULA: "Y"
MSSQL_PID: Developer
st.web:
image: myrepo/stweb:1.0.0.1
build:
context: .
dockerfile: ST.Web/Dockerfile
Dockerfile
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY SupportTicket.sln ./
COPY ST.Web/ST.Web.csproj ST.Web/
COPY ST.AppServicesLib/ST.AppServicesLib.csproj ST.AppServicesLib/
COPY ST.SharedInterfacesLib/ST.SharedInterfacesLib.csproj ST.SharedInterfacesLib/
COPY ST.SharedEntitiesLib/ST.SharedEntitiesLib.csproj ST.SharedEntitiesLib/
COPY ST.SQlServerRepoLib/ST.SQLServerRepoLib.csproj ST.SQlServerRepoLib/
RUN dotnet restore -nowarn:msb3202,nu1503
COPY . .
WORKDIR /src/ST.Web
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "ST.Web.dll"]
Теперь я хочу запустить его из командной строки.
docker-compose (я запускаю это из командной строки, из каталога решений).Это запускает контейнер и говорит:
Сейчас слушаю: http://[::]:80
Но я не могу зайти на сайт.Где находится URL (там написано [::]: 80 -> выглядит загадочно)?Я пытаюсь http://localhost:80, но я получаю Этот сайт не может быть достигнут localhost отказался подключиться.
Я пытаюсь запустить Docker -it myrepo / mycontainer: 1.0.0.0 - Опубликовать 80:80, и я получаю то же, что и выше Этот сайт не может быть достигнут и т. Д.
Я пытаюсь запустить docker -it myrepo / stweb: 1.0.0.1 -p 80:80 и получаю Короткий ключ '-p' не определен в сопоставлениях ключей.
Я пытаюсь собрать докер из каталога решений.Мое решение содержит Dockerfile в моем проекте Web App.Решение прекрасно работает и умеет копировать файлы.Но сборка докера несчастна и не может найти файл решения.Я использую из каталога решений:
сборка докера MyWebAppDirectory
Я получаю Сбой КОПИРОВАНИЯ: stat / var / lib / docker / tmp / docker-builder753352966/MyApp.sln: нет такого файла или каталога
Но если я скопирую Dockerfile (который находится в проекте Web App в Solution Dir, он работает!).Dockerfile OOB находится в каталоге веб-приложения.Но это не работает с командной строкой ни в одной из перестановок, которые я пробовал.Мне нужно было удалить DockerFile из проекта веб-приложения.Но это нарушает сборку Visual Studio!
ВОПРОСЫ:
Как перейти на веб-сайт с помощью docker-compose up с поддержкой докера Visual Studio 2017 OOB, из командной строки ?(Каковы / являются правильными процедура / шаги и URL?)
Есть какие-нибудь идеи о том, как запустить мой контейнер (ы) (в частности, контейнер веб-сайта) из командной оболочки?(Меня особенно интересует docker run , а также docker-compose )
Любые идеи по поводу "Короткого переключателя" -p'не определено в сопоставлениях переключателей. "?
Каково правильное расположение файла Docker для конкретного проекта?SolutionDir или dir проекта?
Почему при создании в режиме выпуска создается дополнительное безымянное изображение?Я ожидаю увидеть только один вывод.
Большое спасибо!