Partage
  • Partager sur Facebook
  • Partager sur Twitter

communication .Net app, database via docker

    5 mai 2019 à 12:48:24

    Hello,

    J'ai créé un simple système d'API en .Net core qui fonctionne parfaitement sur windows en le lançant à l'aide de visual studio. Celui ci est lié à une base de données SQL et lance au démarrage une application web Swagger sur le port 5000. Je souhaiterais désormais le lancer via Docker. J'ai donc généré un dockerfile pour le back-end .NET: 

    FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
    WORKDIR /app
    EXPOSE 80
    EXPOSE 443
    EXPOSE 5000
    
    FROM microsoft/dotnet:2.1-sdk AS build
    WORKDIR /src
    COPY ["TestAPI/TestAPI.csproj", "TestAPI/"]
    COPY ["Abstract/Abstract.csproj", "Abstract/"]
    COPY ["ClassLibrary1/Entities.csproj", "ClassLibrary1/"]
    COPY ["DataAccessLayer/DataAccessLayer.csproj", "DataAccessLayer/"]
    COPY ["Services/Services.csproj", "Services/"]
    
    RUN dotnet restore "TestAPI/TestAPI.csproj"
    COPY . .
    WORKDIR "/src/TestAPI"
    RUN dotnet build "TestAPI.csproj" -c Release -o /app
    
    FROM build AS publish
    RUN dotnet publish "TestAPI.csproj" -c Release -o /app
    
    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app .
    ENTRYPOINT ["dotnet", "TestAPI.dll"]

    J'ai ensuite créé un docker-compose pour lancer mon application avec la base de données : 

    version: "3"
    services:
        web:
            build: .
            ports:
                - "5000:80"
            depends_on:
                - db
        db:
            image: "mcr.microsoft.com/mssql/server"
            environment:
                SA_PASSWORD: "password"
                ACCEPT_EULA: "Y"
    


    Mon application sur windows est normalement lancée sur le port 5000. J'ai donc mappé le port 5000 du conteneur docker web au port 80 de mon pc. Et en lançant la commande "Docker inspect" sur le conteneur de l'application web, je récupére l'adresse IP à laquelle je pensais pouvoir accéder à mon application. Cependant, impossible d'accéder à l'application web swagger. Je reçois une erreur 404 not found. (et non pas "site innaccessible". Il semble donc bien y avoir quelque chose à cette adresse. Mais impossible d'accéder à l'application web swagger).

    Les deux conteneur (web et database) sont bien up et les logs n'indiquent aucune erreur côté base de données et coté application : 

    Hosting environment: Production
    Content root path: /app
    Now listening on: http://[::]:80
    Application started. Press Ctrl+C to shut down.

    Savez-vous comment je pourrais déjà vérifier que mon application .Net arrive bien à communiquer avec ma base de données ? Mais voyez vous également des problèmes dans ma configuration docker ?

    Merci d'avance pour votre aide !

    -
    Edité par tarzan213 5 mai 2019 à 12:53:44

    • Partager sur Facebook
    • Partager sur Twitter

    communication .Net app, database via docker

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown