Skip to content

Commit c7fe1f2

Browse files
committed
dockerize mongo and catalog api project
1 parent 33b7c8a commit c7fe1f2

8 files changed

+110
-2
lines changed

.dockerignore

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
**/.classpath
2+
**/.dockerignore
3+
**/.env
4+
**/.git
5+
**/.gitignore
6+
**/.project
7+
**/.settings
8+
**/.toolstarget
9+
**/.vs
10+
**/.vscode
11+
**/*.*proj.user
12+
**/*.dbmdl
13+
**/*.jfm
14+
**/azds.yaml
15+
**/bin
16+
**/charts
17+
**/docker-compose*
18+
**/Dockerfile*
19+
**/node_modules
20+
**/npm-debug.log
21+
**/obj
22+
**/secrets.dev.yaml
23+
**/values.dev.yaml
24+
LICENSE
25+
README.md

docker-compose.dcproj

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk">
3+
<PropertyGroup Label="Globals">
4+
<ProjectVersion>2.1</ProjectVersion>
5+
<DockerTargetOS>Linux</DockerTargetOS>
6+
<ProjectGuid>713e06c6-b77b-4923-ae68-aa92dd40e0af</ProjectGuid>
7+
<DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
8+
<DockerServiceUrl>{Scheme}://localhost:{ServicePort}/swagger</DockerServiceUrl>
9+
<DockerServiceName>catalog.api</DockerServiceName>
10+
</PropertyGroup>
11+
<ItemGroup>
12+
<None Include="docker-compose.override.yml">
13+
<DependentUpon>docker-compose.yml</DependentUpon>
14+
</None>
15+
<None Include="docker-compose.yml" />
16+
<None Include=".dockerignore" />
17+
</ItemGroup>
18+
</Project>

docker-compose.override.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
version: '3.4'
2+
3+
services:
4+
catalogdb:
5+
container_name: catalogdb
6+
restart: always
7+
volumes:
8+
- ${WEBAPP_STORAGE_HOME}/site:/data/db
9+
#- ./data:/data/db
10+
ports:
11+
- "27017:27017"
12+
13+
catalog.api:
14+
environment:
15+
- ASPNETCORE_ENVIRONMENT=Development
16+
- "CatalogDatabaseSettings:ConnectionString=mongodb://catalogdb:27017"
17+
depends_on:
18+
- catalogdb
19+
volumes:
20+
- ${HOME}/.microsoft/usersecrets/:/root/.microsoft/usersecrets
21+
- ${HOME}/.aspnet/https:/root/.aspnet/https/
22+
ports:
23+
- "8000:80"

docker-compose.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
version: '3.4'
2+
3+
services:
4+
catalogdb:
5+
image: mongo
6+
7+
catalog.api:
8+
image: ${DOCKER_REGISTRY-}catalogapi
9+
build:
10+
context: .
11+
dockerfile: src/Catalog/Catalog.API/Dockerfile

run-aspnetcore-microservices.sln

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{1F32F974-1A6
77
EndProject
88
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Catalog", "Catalog", "{AB4603C3-B032-4A7D-9781-9E03C4C5594E}"
99
EndProject
10-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Catalog.API", "src\Catalog\Catalog.API\Catalog.API.csproj", "{64B30D0B-6991-479C-ADB3-73C2E121163F}"
10+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.API", "src\Catalog\Catalog.API\Catalog.API.csproj", "{64B30D0B-6991-479C-ADB3-73C2E121163F}"
11+
EndProject
12+
Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{713E06C6-B77B-4923-AE68-AA92DD40E0AF}"
1113
EndProject
1214
Global
1315
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -19,6 +21,10 @@ Global
1921
{64B30D0B-6991-479C-ADB3-73C2E121163F}.Debug|Any CPU.Build.0 = Debug|Any CPU
2022
{64B30D0B-6991-479C-ADB3-73C2E121163F}.Release|Any CPU.ActiveCfg = Release|Any CPU
2123
{64B30D0B-6991-479C-ADB3-73C2E121163F}.Release|Any CPU.Build.0 = Release|Any CPU
24+
{713E06C6-B77B-4923-AE68-AA92DD40E0AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
25+
{713E06C6-B77B-4923-AE68-AA92DD40E0AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
26+
{713E06C6-B77B-4923-AE68-AA92DD40E0AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
27+
{713E06C6-B77B-4923-AE68-AA92DD40E0AF}.Release|Any CPU.Build.0 = Release|Any CPU
2228
EndGlobalSection
2329
GlobalSection(SolutionProperties) = preSolution
2430
HideSolutionNode = FALSE

src/Catalog/Catalog.API/Catalog.API.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@
22

33
<PropertyGroup>
44
<TargetFramework>netcoreapp3.1</TargetFramework>
5+
<DockerComposeProjectPath>..\..\..\docker-compose.dcproj</DockerComposeProjectPath>
6+
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
7+
<DockerfileContext>..\..\..</DockerfileContext>
58
</PropertyGroup>
69

710
<ItemGroup>
11+
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
812
<PackageReference Include="MongoDB.Driver" Version="2.10.3" />
913
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.3.1" />
1014
</ItemGroup>

src/Catalog/Catalog.API/Dockerfile

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
2+
3+
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
4+
WORKDIR /app
5+
EXPOSE 80
6+
7+
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
8+
WORKDIR /src
9+
COPY ["src/Catalog/Catalog.API/Catalog.API.csproj", "src/Catalog/Catalog.API/"]
10+
RUN dotnet restore "src/Catalog/Catalog.API/Catalog.API.csproj"
11+
COPY . .
12+
WORKDIR "/src/src/Catalog/Catalog.API"
13+
RUN dotnet build "Catalog.API.csproj" -c Release -o /app/build
14+
15+
FROM build AS publish
16+
RUN dotnet publish "Catalog.API.csproj" -c Release -o /app/publish
17+
18+
FROM base AS final
19+
WORKDIR /app
20+
COPY --from=publish /app/publish .
21+
ENTRYPOINT ["dotnet", "Catalog.API.dll"]

src/Catalog/Catalog.API/appsettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"CatalogDatabaseSettings": {
3-
"ConnectionString": "mongodb://localhost:27017",
3+
"ConnectionString": "mongodb://localhost:27017",
44
"DatabaseName": "CatalogDb",
55
"CollectionName": "Products"
66
},

0 commit comments

Comments
 (0)