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