Докер с ядром .NET: как запустить 2 приложения (.Net Core Api и .Net React) на докере (Docker для Windows (linux))?

В моем решении 2 проекта (Diagnostique.FO и Diagnostique.BO), я хочу выполнять все свои проекты с помощью Docker.

  1. Проект Diagnostique.BO - это проект ASP.NET CORE API (CORE 2.1).
  2. Проект Diagnostique.FO - это проект ASP.NET CORE React.js (CORE 2.1).

Два проекта являются независимыми, проект Diagnostique.FO вызывает функции из проекта Diagnostique.BO с использованием HTTP-сервисов (Restfull).

Вот мое решение: мое решение с проектами

Я создаю 2 файла Docker для 2 проектов и 1 файл Docker-compose.yml. : Докер с ядром .NET: как запустить 2 приложения (.Net Core Api и .Net React) на докере (Docker для Windows (linux))?

Файл Dockerfile Diagnostique.BO содержит:

FROM microsoft/dotnet:2.1.2-aspnetcore-runtime-stretch-slim
WORKDIR /app
COPY bin/Release/netcoreapp2.1/publish /app/
ENTRYPOINT ["dotnet", "Diagnostique.BO.dll"]

Файл Dockerfile Diagnostique.FO содержит:

FROM microsoft/dotnet:2.1.2-aspnetcore-runtime-stretch-slim
WORKDIR /app
COPY bin/Release/netcoreapp2.1/publish /app/
ENTRYPOINT ["dotnet", "Diagnostique.FO.dll"]

Docker-compose.yml Содержит:

version: "3"
services:
    front:
        build: Diagnostique.FO/.
        ports:
            - "8081:80"
    back:
        build: Diagnostique.BO/.
        ports:
            - "8082:44318"
        depends_on:
            - NDV1289
    NDV1289:
        image: "microsoft/mssql-server-linux"
        environment:
            SA_PASSWORD: "mYpASS@@"
            ACCEPT_EULA: "Y"
        ports:
            - "1433:1433"

Когда я выполняю сборка docker-compose с помощью powershell:

Building front
Step 1/4 : FROM microsoft/dotnet:2.1.2-aspnetcore-runtime-stretch-slim
2.1.2-aspnetcore-runtime-stretch-slim: Pulling from microsoft/dotnet
be8881be8156: Pull complete
f854db899319: Pull complete
4591fd524b8e: Pull complete
65f224da8749: Pull complete
Digest: sha256:01c2982ecf9aca0a5934c98e417e550afc7cd6bd1e4f7b87399626a7290c30d6
Status: Downloaded newer image for microsoft/dotnet:2.1.2-aspnetcore-runtime-stretch-slim
 ---> fcc3887985bb
Step 2/4 : WORKDIR /app
 ---> Running in e1bf155b3f2a
Removing intermediate container e1bf155b3f2a
 ---> 9e414dbff80d
Step 3/4 : COPY bin/Release/netcoreapp2.1/publish /app/
 ---> 6a645f992658
Step 4/4 : ENTRYPOINT ["dotnet", "Diagnostique.FO.dll"]
 ---> Running in f64ed2f6694b
Removing intermediate container f64ed2f6694b
 ---> 9edf8b23878d
Successfully built 9edf8b23878d
Successfully tagged diagnostiquesdeconnecte_front:latest
NDV1289 uses an image, skipping
Building back
Step 1/4 : FROM microsoft/dotnet:2.1.2-aspnetcore-runtime-stretch-slim
 ---> fcc3887985bb
Step 2/4 : WORKDIR /app
 ---> Using cache
 ---> 9e414dbff80d
Step 3/4 : COPY bin/Release/netcoreapp2.1/publish /app/
 ---> d302f9908d38
Step 4/4 : ENTRYPOINT ["dotnet", "Diagnostique.BO.dll"]
 ---> Running in 3dea351ef605
Removing intermediate container 3dea351ef605
 ---> 584fb11936c3
Successfully built 584fb11936c3
Successfully tagged diagnostiquesdeconnecte_back:latest

И докер-сочинять

        Creating network "diagnostiquesdeconnecte_default" with the default driver
        Pulling NDV1289 (microsoft/mssql-server-linux:)...
        latest: Pulling from microsoft/mssql-server-linux
        f6fa9a861b90: Pull complete
        da7318603015: Pull complete
        6a8bd10c9278: Pull complete
        d5a40291440f: Pull complete
        bbdd8a83c0f1: Pull complete
        3a52205d40a6: Pull complete
        6192691706e8: Pull complete
        1a658a9035fb: Pull complete
        69238266c4f2: Pull complete
        37c1bf288fdc: Pull complete
        Digest: sha256:8231b746946d12a6a1d5e6c7bcb3d983e97ed1fe5ba3ad04e52305060aced166
        Status: Downloaded newer image for microsoft/mssql-server-linux:latest
        Creating diagnostiquesdeconnecte_NDV1289_1 ... done
        Creating diagnostiquesdeconnecte_front_1   ... done
        Creating diagnostiquesdeconnecte_back_1    ... done
        Attaching to diagnostiquesdeconnecte_NDV1289_1, diagnostiquesdeconnecte_front_1, diagnostiquesdeconnecte_back_1
        front_1    | warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
        front_1    |       No XML encryptor configured. Key {bb7aff1d-7d0e-4ee2-be65-b3c955e1c197} may be persisted to storage in unencrypted form.
        back_1     | warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
        back_1     |       No XML encryptor configured. Key {26b8016f-3f14-4747-a938-8053c447132a} may be persisted to storage in unencrypted form.
        front_1    | Hosting environment: Production
        front_1    | Content root path: /app
        front_1    | Now listening on: http://[::]:80
        front_1    | Application started. Press Ctrl+C to shut down.
        back_1     | Hosting environment: Production
        back_1     | Content root path: /app
        back_1     | Now listening on: http://[::]:80
        back_1     | Application started. Press Ctrl+C to shut down.
        NDV1289_1  | 2018-08-02 10:26:27.50 Server      Setup step is copying system data file 'C:\templatedata\master.mdf' to '/var/opt/mssql/data/master.mdf'.
        2018-08-02 10:26:27.55 Server      Did not find an existing master data file /var/opt/mssql/data/master.mdf, copying the missing default master and other system database files. If you have moved the database location, but not moved the database files, startup may fail. To repair: shutdown SQL Server, move the master database to configured location, and restart.
        2018-08-02 10:26:27.56 Server      Setup step is copying system data file 'C:\templatedata\mastlog.ldf' to '/var/opt/mssql/data/mastlog.ldf'.
        2018-08-02 10:26:27.56 Server      Setup step is copying system data file 'C:\templatedata\model.mdf' to '/var/opt/mssql/data/model.mdf'.
        2018-08-02 10:26:27.58 Server      Setup step is copying system data file 'C:\templatedata\modellog.ldf' to '/var/opt/mssql/data/modellog.ldf'.
        2018-08-02 10:26:27.59 Server      Setup step is copying system data file 'C:\templatedata\msdbdata.mdf' to '/var/opt/mssql/data/msdbdata.mdf'.
        2018-08-02 10:26:27.61 Server      Setup step is copying system data file 'C:\templatedata\msdblog.ldf' to '/var/opt/mssql/data/msdblog.ldf'.
        2018-08-02 10:26:27.70 Server      Microsoft SQL Server 2017 (RTM-CU9) (KB4341265) - 14.0.3030.27 (X64)    
 Etc..

Докер ps

CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                     NAMES
7a8c023598d3        diagnostiquesdeconnecte_back    "dotnet Diagnostique…"   4 minutes ago       Up 4 minutes        0.0.0.0:8082->44318/tcp   diagnostiquesdeconnecte_back_1
bb60c5ee33cb        diagnostiquesdeconnecte_front   "dotnet Diagnostique…"   4 minutes ago       Up 4 minutes        0.0.0.0:8081->80/tcp      diagnostiquesdeconnecte_front_1
8c0ed896eb23        microsoft/mssql-server-linux    "/opt/mssql/bin/sqls…"   4 minutes ago       Up 4 minutes        0.0.0.0:1433->1433/tcp    diagnostiquesdeconnecte_NDV1289_1

Кажется, все работает нормально, но когда я пытаюсь получить доступ к сайту (http: // локальный: 8081), у меня появляется следующее сообщение в браузере: «не могу попасть на эту страницу»

И я также использовал- docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' bb60c5ee33cb(bb60c5ee33cb - мой контейнер), чтобы получить IP-адрес, а с ip у меня такое же сообщение.

Вы можете помочь, как я могу запускать свои приложения с помощью докера? любые предложения, пожалуйста. заранее спасибо.

Вы используете Docker Toolbox или настольное приложение? (docker-machine ip что-нибудь говорит?)

David Maze 02.08.2018 15:24

PS F: \ Desktop \ fresh_app \ Diagnostiques> ip-адрес докер-машины Ошибка: имя (а) машины не указано и машина "по умолчанию" не существует

d_raja_23 02.08.2018 15:29

Я использую Docker для Windows.

d_raja_23 02.08.2018 15:31

Возможно, я снова получу это задом наперед ... но разве это не <CONTAINERPORT:HOSTPORT>? поэтому, если на вашей «передней панели» есть порты «8081: 80», вы не открыли порт 8081 .. вы открываете 80. http://localhost или http://localhost:80

Adam Vincent 02.08.2018 18:03

Я пробовал локальный: 80 и локальный: 8081 и CONTAINERPORT: HOSTPORT, но все еще не работает.

d_raja_23 02.08.2018 19:07

вот мои полные проекты => github.com/draja23/Diagnostiques_Indep

d_raja_23 10.08.2018 16:57
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
6
1 142
0

Другие вопросы по теме