1+ FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
2+ WORKDIR /src
3+
4+ # Copy the solution file
5+ COPY src/DesignPatternsLibrary.sln .
6+
7+ # Copy the main project file
8+ COPY src/DesignPatternsLibrary/DesignPatternsLibrary.csproj DesignPatternsLibrary/
9+
10+ # Copy referenced projects' CSPROJ files
11+ COPY ["src/AdditionalPatterns/EventAggregator/StoreManagement/StoreManagement.csproj" , "AdditionalPatterns/EventAggregator/StoreManagement/" ]
12+ COPY ["src/BuildingBlocks/BuildingBlocks.csproj" , "BuildingBlocks/" ]
13+ COPY ["src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/FluentInterfaceLibrary.csproj" , "AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/" ]
14+ COPY ["src/AdditionalPatterns/Interpreter/InterpreterLibrary/InterpreterLibrary.csproj" , "AdditionalPatterns/Interpreter/InterpreterLibrary/" ]
15+ COPY ["src/AdditionalPatterns/LazyLoad/LazyLoadLibrary/LazyLoadLibrary.csproj" , "AdditionalPatterns/LazyLoad/LazyLoadLibrary/" ]
16+ COPY ["src/AdditionalPatterns/NullObject/NullObjectLibrary/NullObjectLibrary.csproj" , "AdditionalPatterns/NullObject/NullObjectLibrary/" ]
17+ COPY ["src/AdditionalPatterns/Repository/OrderManagement/OrderManagement.csproj" , "AdditionalPatterns/Repository/OrderManagement/" ]
18+ COPY ["src/AdditionalPatterns/Rules/RulesLibrary/RulesLibrary.csproj" , "AdditionalPatterns/Rules/RulesLibrary/" ]
19+ COPY ["src/AdditionalPatterns/ServiceLocator/OrderProcessing/OrderProcessing.csproj" , "AdditionalPatterns/ServiceLocator/OrderProcessing/" ]
20+ COPY ["src/AdditionalPatterns/Specification/ProductSpecification/ProductSpecification.csproj" , "AdditionalPatterns/Specification/ProductSpecification/" ]
21+ COPY ["src/AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/UnitOfWorkLibrary.csproj" , "AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/" ]
22+ COPY ["src/BehavioralPatterns/ChainOfResponsibility/ChainOfResponsibilityLibrary/ChainOfResponsibilityLibrary.csproj" , "BehavioralPatterns/ChainOfResponsibility/ChainOfResponsibilityLibrary/" ]
23+ COPY ["src/BehavioralPatterns/Command/CommandLibrary/CommandLibrary.csproj" , "BehavioralPatterns/Command/CommandLibrary/" ]
24+ COPY ["src/BehavioralPatterns/Iterator/IteratorLibrary/IteratorLibrary.csproj" , "BehavioralPatterns/Iterator/IteratorLibrary/" ]
25+ COPY ["src/BehavioralPatterns/Mediator/MediatorLibrary/MediatorLibrary.csproj" , "BehavioralPatterns/Mediator/MediatorLibrary/" ]
26+ COPY ["src/BehavioralPatterns/Memento/MementoLibrary/MementoLibrary.csproj" , "BehavioralPatterns/Memento/MementoLibrary/" ]
27+ COPY ["src/BehavioralPatterns/Observer/ObserverLibrary/ObserverLibrary.csproj" , "BehavioralPatterns/Observer/ObserverLibrary/" ]
28+ COPY ["src/BehavioralPatterns/State/StateLibrary/StateLibrary.csproj" , "BehavioralPatterns/State/StateLibrary/" ]
29+ COPY ["src/BehavioralPatterns/Strategy/StrategyLibrary/StrategyLibrary.csproj" , "BehavioralPatterns/Strategy/StrategyLibrary/" ]
30+ COPY ["src/BehavioralPatterns/TemplateMethod/TemplateMethodLibrary/TemplateMethodLibrary.csproj" , "BehavioralPatterns/TemplateMethod/TemplateMethodLibrary/" ]
31+ COPY ["src/BehavioralPatterns/Visitor/VisitorLibrary/VisitorLibrary.csproj" , "BehavioralPatterns/Visitor/VisitorLibrary/" ]
32+ COPY ["src/CreationalPatterns/AbstractFactory/MealSimpleFactory/MealSimpleFactory.csproj" , "CreationalPatterns/AbstractFactory/MealSimpleFactory/" ]
33+ COPY ["src/CreationalPatterns/AbstractFactory/RestaurantAbstractFactory/RestaurantAbstractFactory.csproj" , "CreationalPatterns/AbstractFactory/RestaurantAbstractFactory/" ]
34+ COPY ["src/CreationalPatterns/Builder/CustomSandwichBuilder/CustomSandwichBuilder.csproj" , "CreationalPatterns/Builder/CustomSandwichBuilder/" ]
35+ COPY ["src/CreationalPatterns/FactoryMethod/RestaurantManagement/RestaurantManagement.csproj" , "CreationalPatterns/FactoryMethod/RestaurantManagement/" ]
36+ COPY ["src/CreationalPatterns/Prototype/PrototypeLibrary/PrototypeLibrary.csproj" , "CreationalPatterns/Prototype/PrototypeLibrary/" ]
37+ COPY ["src/CreationalPatterns/Singleton/Greeter/Greeter.csproj" , "CreationalPatterns/Singleton/Greeter/" ]
38+ COPY ["src/StructuralPatterns/Adapter/AdapterLibrary/AdapterLibrary.csproj" , "StructuralPatterns/Adapter/AdapterLibrary/" ]
39+ COPY ["src/StructuralPatterns/Bridge/BridgeLibrary/BridgeLibrary.csproj" , "StructuralPatterns/Bridge/BridgeLibrary/" ]
40+ COPY ["src/StructuralPatterns/Composite/CompositeLibrary/CompositeLibrary.csproj" , "StructuralPatterns/Composite/CompositeLibrary/" ]
41+ COPY ["src/StructuralPatterns/Decorator/DecoratorLibrary/DecoratorLibrary.csproj" , "StructuralPatterns/Decorator/DecoratorLibrary/" ]
42+ COPY ["src/StructuralPatterns/Facade/FacadeLibrary/FacadeLibrary.csproj" , "StructuralPatterns/Facade/FacadeLibrary/" ]
43+ COPY ["src/StructuralPatterns/Flyweight/FlyweightLibrary/FlyweightLibrary.csproj" , "StructuralPatterns/Flyweight/FlyweightLibrary/" ]
44+ COPY ["src/StructuralPatterns/Proxy/ProxyLibrary/ProxyLibrary.csproj" , "StructuralPatterns/Proxy/ProxyLibrary/" ]
45+
46+ # Restore the NuGet packages for the entire solution
47+ RUN dotnet restore
48+
49+ # Copy the source code for the entire solution
50+ COPY src/ .
51+
52+ # Build and publish the main project
53+ RUN dotnet publish DesignPatternsLibrary/DesignPatternsLibrary.csproj -c Release -o /app/publish
54+
55+ # Generate the runtime image
56+ FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS final
57+ WORKDIR /app
58+ COPY --from=build /app/publish .
59+ ENTRYPOINT ["dotnet" , "DesignPatternsLibrary.dll" ]
0 commit comments