(feature): dockerized client app
This commit is contained in:
parent
740a5d2d75
commit
cb4615b14d
6
src/ClientApp/.dockerignore
Normal file
6
src/ClientApp/.dockerignore
Normal file
@ -0,0 +1,6 @@
|
||||
**/.dockerignore
|
||||
**/.vs
|
||||
**/.vscode
|
||||
**/Dockerfile*
|
||||
**/node_modules
|
||||
!**/.env
|
||||
@ -3,7 +3,7 @@ BROWSER=none
|
||||
REACT_APP_LOCAL_ONLY=Y
|
||||
|
||||
REACT_APP_FRONTEND=https://localhost:7174
|
||||
REACT_APP_API=https://localhost:7174/api
|
||||
REACT_APP_API=https://reverseproxy:7174/api
|
||||
|
||||
REACT_APP_SITEID=404c8232-9048-4519-bfba-6e78dc7005ca
|
||||
REACT_APP_LOCALE=en-US
|
||||
|
||||
@ -32,6 +32,14 @@
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Content Include=".dockerignore">
|
||||
<SubType>Content</SubType>
|
||||
<DependentUpon>Dockerfile</DependentUpon>
|
||||
</Content>
|
||||
<None Include="Dockerfile" />
|
||||
<Content Include=".env" />
|
||||
<Content Include=".eslintrc.json" />
|
||||
<Content Include="package-lock.json" />
|
||||
<Content Include="src\components\FeatherIcons\icons.json" />
|
||||
<Content Include="src\components\Loader\scss\animations\ball-beat.scss" />
|
||||
<Content Include="src\components\Loader\scss\animations\ball-clip-rotate-multiple.scss" />
|
||||
@ -116,6 +124,7 @@
|
||||
<Folder Include="src\enumerations\" />
|
||||
<Folder Include="src\functions\" />
|
||||
<Folder Include="src\functions\jwtDecode\" />
|
||||
<Folder Include="src\interfaces\" />
|
||||
<Folder Include="src\layouts\" />
|
||||
<Folder Include="src\layouts\admin\" />
|
||||
<Folder Include="src\layouts\admin\NavMenu\" />
|
||||
@ -127,7 +136,6 @@
|
||||
<Folder Include="src\layouts\public\NavMenu\" />
|
||||
<Folder Include="src\layouts\public\scss\" />
|
||||
<Folder Include="src\layouts\scss\" />
|
||||
<Folder Include="src\models\" />
|
||||
<Folder Include="src\pages\" />
|
||||
<Folder Include="src\pages\Blog\" />
|
||||
<Folder Include="src\pages\Blog\Catalog\" />
|
||||
@ -178,6 +186,7 @@
|
||||
<TypeScriptCompile Include="src\functions\jwtDecode\base64_url_decode.ts" />
|
||||
<TypeScriptCompile Include="src\functions\jwtDecode\index.ts" />
|
||||
<TypeScriptCompile Include="src\index.tsx" />
|
||||
<TypeScriptCompile Include="src\interfaces\index.ts" />
|
||||
<TypeScriptCompile Include="src\layouts\admin\index.tsx" />
|
||||
<TypeScriptCompile Include="src\layouts\admin\NavMenu\index.tsx" />
|
||||
<TypeScriptCompile Include="src\layouts\admin\SideMenu\index.tsx" />
|
||||
@ -186,12 +195,6 @@
|
||||
<TypeScriptCompile Include="src\layouts\public\Footer\index.tsx" />
|
||||
<TypeScriptCompile Include="src\layouts\public\index.tsx" />
|
||||
<TypeScriptCompile Include="src\layouts\public\NavMenu\index.tsx" />
|
||||
<TypeScriptCompile Include="src\models\abstractions.ts" />
|
||||
<TypeScriptCompile Include="src\models\index.ts" />
|
||||
<TypeScriptCompile Include="src\models\pages.ts" />
|
||||
<TypeScriptCompile Include="src\models\pageSections.ts" />
|
||||
<TypeScriptCompile Include="src\models\requests.ts" />
|
||||
<TypeScriptCompile Include="src\models\responses.ts" />
|
||||
<TypeScriptCompile Include="src\pages\AdminHome.tsx" />
|
||||
<TypeScriptCompile Include="src\pages\Blog\Catalog\index.tsx" />
|
||||
<TypeScriptCompile Include="src\pages\Blog\index.ts" />
|
||||
@ -221,7 +224,6 @@
|
||||
<TypeScriptCompile Include="src\store\reducers\Content.ts" />
|
||||
<TypeScriptCompile Include="src\store\reducers\Counter.ts" />
|
||||
<TypeScriptCompile Include="src\store\reducers\Header.ts" />
|
||||
<TypeScriptCompile Include="src\store\reducers\Loader.ts" />
|
||||
<TypeScriptCompile Include="src\store\reducers\ShopCart.ts" />
|
||||
<TypeScriptCompile Include="src\store\reducers\ShopCatalog.ts" />
|
||||
<TypeScriptCompile Include="src\store\reducers\ShopCategories.ts" />
|
||||
|
||||
14
src/ClientApp/Dockerfile
Normal file
14
src/ClientApp/Dockerfile
Normal file
@ -0,0 +1,14 @@
|
||||
FROM node:lts as base
|
||||
WORKDIR /app
|
||||
ENV CI=true
|
||||
ENV PORT=3000
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
FROM base as build
|
||||
COPY ["ClientApp/", "/app"]
|
||||
RUN npm ci
|
||||
CMD [ "npm", "start" ]
|
||||
|
||||
#FROM build as final
|
||||
#COPY ["ClientApp/build", "/app"]
|
||||
@ -82,5 +82,46 @@ namespace Extensions {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private static readonly string[] suffixes = { "Bytes", "KB", "MB", "GB", "TB", "PB" };
|
||||
|
||||
private static decimal FormatSize(int bytes, int index = 1) => (decimal)bytes / 1024 * index;
|
||||
|
||||
public static string ToKB(this int bytes) =>
|
||||
string.Format("{0:n1}{1}", FormatSize(bytes, 1), suffixes[1]);
|
||||
|
||||
public static string ToKB(this byte[] bytes) =>
|
||||
string.Format("{0:n1}{1}", FormatSize(bytes.Length, 1), suffixes[1]);
|
||||
|
||||
|
||||
public static string ToMB(this int bytes) =>
|
||||
string.Format("{0:n1}{1}", FormatSize(bytes, 2), suffixes[2]);
|
||||
|
||||
public static string ToMB(this byte[] bytes) =>
|
||||
string.Format("{0:n1}{1}", FormatSize(bytes.Length, 2), suffixes[2]);
|
||||
|
||||
|
||||
public static string ToGB(this int bytes) =>
|
||||
string.Format("{0:n1}{1}", FormatSize(bytes, 3), suffixes[3]);
|
||||
|
||||
public static string ToGB(this byte[] bytes) =>
|
||||
string.Format("{0:n1}{1}", FormatSize(bytes.Length, 3), suffixes[3]);
|
||||
|
||||
|
||||
public static string ToTB(this int bytes) =>
|
||||
string.Format("{0:n1}{1}", FormatSize(bytes, 4), suffixes[4]);
|
||||
|
||||
public static string ToTB(this byte[] bytes) =>
|
||||
string.Format("{0:n1}{1}", FormatSize(bytes.Length, 4), suffixes[4]);
|
||||
|
||||
|
||||
public static string ToPB(this int bytes) =>
|
||||
string.Format("{0:n1}{1}", FormatSize(bytes, 5), suffixes[5]);
|
||||
|
||||
public static string ToPB(this byte[] bytes) =>
|
||||
string.Format("{0:n1}{1}", FormatSize(bytes.Length, 5), suffixes[5]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@
|
||||
"cluster2": {
|
||||
"Destinations": {
|
||||
"destination1": {
|
||||
"Address": "http://localhost:3000/"
|
||||
"Address": "http://clientapp:3000/"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,13 +8,11 @@ EXPOSE 443
|
||||
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
|
||||
WORKDIR /src
|
||||
COPY ["WeatherForecast/WeatherForecast.csproj", "WeatherForecast/"]
|
||||
COPY ["Services/FileSecurityService/FileSecurityService.csproj", "Services/FileSecurityService/"]
|
||||
COPY ["FileSecurityService/FileSecurityService.csproj", "Services/FileSecurityService/"]
|
||||
COPY ["Extensions/Extensions.csproj", "Extensions/"]
|
||||
COPY ["Core/Core.csproj", "Core/"]
|
||||
COPY ["Services/ImageProvider/ImageProvider.csproj", "Services/ImageProvider/"]
|
||||
COPY ["ImageProvider/ImageProvider.csproj", "Services/ImageProvider/"]
|
||||
COPY ["DataProviders/DataProviders.csproj", "DataProviders/"]
|
||||
COPY ["Services/JWTService/JWTService.csproj", "Services/JWTService/"]
|
||||
COPY ["Services/HashService/HashService.csproj", "Services/HashService/"]
|
||||
RUN dotnet restore "WeatherForecast/WeatherForecast.csproj"
|
||||
COPY . .
|
||||
WORKDIR "/src/WeatherForecast"
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<DockerTargetOS>Linux</DockerTargetOS>
|
||||
<ProjectGuid>7fc6f0ba-2dcb-4b53-a3b3-61ceef42b9d0</ProjectGuid>
|
||||
<DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
|
||||
<DockerServiceUrl>{Scheme}://localhost:{ServicePort}/swagger</DockerServiceUrl>
|
||||
<DockerServiceUrl>{Scheme}://localhost:{ServicePort}</DockerServiceUrl>
|
||||
<DockerServiceName>reverseproxy</DockerServiceName>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@ -1,10 +1,25 @@
|
||||
version: '3.4'
|
||||
|
||||
# Settings and configurations that are common for all containers
|
||||
x-env-file-common: &env-file-common
|
||||
env_file:
|
||||
- './ClientApp/.env'
|
||||
- './docker-compose/variables.env'
|
||||
|
||||
networks:
|
||||
my-network:
|
||||
driver: "bridge"
|
||||
|
||||
services:
|
||||
clientapp:
|
||||
<<: *env-file-common
|
||||
#ports:
|
||||
# - "3000:3000"
|
||||
depends_on:
|
||||
- reverseproxy
|
||||
networks:
|
||||
- "my-network"
|
||||
|
||||
reverseproxy:
|
||||
environment:
|
||||
- ASPNETCORE_ENVIRONMENT=Development
|
||||
@ -21,12 +36,14 @@ services:
|
||||
- "my-network"
|
||||
|
||||
weatherforecast:
|
||||
<<: *env-file-common
|
||||
environment:
|
||||
- ASPNETCORE_ENVIRONMENT=Development
|
||||
- ASPNETCORE_URLS=https://+:7151;http://+:5133
|
||||
ports:
|
||||
- "7151:7151"
|
||||
- "5133:5133"
|
||||
|
||||
#ports:
|
||||
# - "7151:7151"
|
||||
# - "5133:5133"
|
||||
volumes:
|
||||
- ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
|
||||
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
|
||||
|
||||
@ -1,6 +1,11 @@
|
||||
version: '3.4'
|
||||
|
||||
services:
|
||||
clientapp:
|
||||
image: ${DOCKER_REGISTRY-}clientapp
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ClientApp/Dockerfile
|
||||
weatherforecast:
|
||||
image: ${DOCKER_REGISTRY-}weatherforecast
|
||||
build:
|
||||
|
||||
@ -3,4 +3,4 @@ WiredTiger 10.0.2: (December 21, 2021)
|
||||
WiredTiger version
|
||||
major=10,minor=0,patch=2
|
||||
file:WiredTiger.wt
|
||||
access_pattern_hint=none,allocation_size=4KB,app_metadata=,assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none,write_timestamp=off),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,collator=,columns=,dictionary=0,encryption=(keyid=,name=),format=btree,huffman_key=,huffman_value=,id=0,ignore_in_memory_cache_size=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=S,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=0,log=(enabled=true),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,readonly=false,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,tiered_object=false,tiered_storage=(auth_token=,bucket=,bucket_prefix=,cache_directory=,local_retention=300,name=,object_target_size=0),value_format=S,verbose=[],version=(major=1,minor=1),write_timestamp_usage=none,checkpoint=(WiredTigerCheckpoint.127717=(addr="019681e4fb9f7e379f81e4f489d9b8a081e4070e71ea808080e301ffc0e3010fc0",order=127717,time=1681378661,size=81920,newest_start_durable_ts=0,oldest_start_ts=0,newest_txn=188,newest_stop_durable_ts=0,newest_stop_ts=-1,newest_stop_txn=-11,prepare=0,write_gen=383947,run_write_gen=383679)),checkpoint_backup_info=,checkpoint_lsn=(82,75904)
|
||||
access_pattern_hint=none,allocation_size=4KB,app_metadata=,assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none,write_timestamp=off),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,collator=,columns=,dictionary=0,encryption=(keyid=,name=),format=btree,huffman_key=,huffman_value=,id=0,ignore_in_memory_cache_size=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=S,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=0,log=(enabled=true),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,readonly=false,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,tiered_object=false,tiered_storage=(auth_token=,bucket=,bucket_prefix=,cache_directory=,local_retention=300,name=,object_target_size=0),value_format=S,verbose=[],version=(major=1,minor=1),write_timestamp_usage=none,checkpoint=(WiredTigerCheckpoint.127995=(addr="018081e4886024688181e4d73f01df8281e4e69d0e29808080e3021fc0e3010fc0",order=127995,time=1685108131,size=81920,newest_start_durable_ts=0,oldest_start_ts=0,newest_txn=298,newest_stop_durable_ts=0,newest_stop_ts=-1,newest_stop_txn=-11,prepare=0,write_gen=384809,run_write_gen=384387)),checkpoint_backup_info=,checkpoint_lsn=(87,118016)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
0
src/docker-compose/variables.env
Normal file
0
src/docker-compose/variables.env
Normal file
Loading…
Reference in New Issue
Block a user