skip to Main Content

I am completely new to docker and i am not a developer. Right now i have an application which runs on centos/nginx/dotnetcore . In dotnet core i have 4 applications, we run them using dotnet appname.dll. or rather systemd. If i want to dockerize this application set, should i create centos as a separate docker image and then nginx as other image and then an image for each of the application ? If yes how do i link them, or should i create only one image with centos/nginx and all 4 applications (which is in tar) installed? Any help on this would be appreciated.

2

Answers


  1. nginx and dotnet as 2 seperate containers for each application would be ideal and recomended

    Login or Signup to reply.
  2. Check the dockerfile below about the ASP.NET rest API. It is the same way when you call dotnet appname.dll. Instead of running in Centos it runs in container which is debian based if I’m not wrong

    FROM mcr.microsoft.com/dotnet/core/sdk:2.1 AS build-env
    WORKDIR /app
    
    COPY MicroService1.csproj MicroService1/
    RUN dotnet restore MicroService1/MicroService1.csproj
    
    COPY . .
    RUN dotnet publish ./MicroService1.csproj -c Release -o out
    
    FROM mcr.microsoft.com/dotnet/core/aspnet:2.1
    WORKDIR /app
    RUN ls
    COPY --from=build-env /app/out ./
    
    ENTRYPOINT ["dotnet", "MicroService1.dll"]
    

    If you have 4 dependent applications you can use docker-compose.

    version: '3.0'
    
    services:
       db:
         image: mysql:5.7
         environment:
           MYSQL_RANDOM_ROOT_PASSWORD: 1
           MYSQL_DATABASE: accountowner
           MYSQL_USER: dbuser
           MYSQL_PASSWORD: dbuserpassword
         volumes:
           - dbdata:/var/lib/mysql
         ports:
           - "3306:3306"
         restart: always
    
       microservice1:
         depends_on:
           - db
         build:
           context: ./MicroService1/MicroService1
         ports:
           - "8080:80"
         restart: always
    
       frontend:
         depends_on:
           - microservice1
         build:
           context: ./Frontend
         ports:
           - "4200:4200"
    
    volumes:
      dbdata:
    

    Above docker-compose.yml given. It contains 3 service which are frondend, backend and database. In your docker-compose.yml you should define your 4 application

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search