diff --git a/.gitignore b/.gitignore index c01ac3e2..8ed69463 100644 --- a/.gitignore +++ b/.gitignore @@ -263,6 +263,7 @@ src/Acme.BookStore.Blazor.Server.Tiered/Logs/* # Use abp install-libs to restore. **/wwwroot/libs/* +public dist .vscode /Yi.Abp.Net8/src/Yi.Abp.Web/appsettings.Development.json diff --git a/Yi.Abp.Net8/.dockerignore b/Yi.Abp.Net8/.dockerignore index fe1152bd..f1079cd5 100644 --- a/Yi.Abp.Net8/.dockerignore +++ b/Yi.Abp.Net8/.dockerignore @@ -27,4 +27,7 @@ README.md !.git/HEAD !.git/config !.git/packed-refs -!.git/refs/heads/** \ No newline at end of file +!.git/refs/heads/** +appsettings.Development.json +appsettings.Production.json +appsettings.Staging.json \ No newline at end of file diff --git a/Yi.Abp.Net8/Docker-Readme.md b/Yi.Abp.Net8/Docker-Readme.md new file mode 100644 index 00000000..15da913e --- /dev/null +++ b/Yi.Abp.Net8/Docker-Readme.md @@ -0,0 +1,22 @@ +# Docker 构建说明 + +## 后端 +执行目录:Yi\Yi.Abp.Net8 + +#### 完整代码编译 +docker build -t yi.admin:x.x.x -f Dockerfile . + +#### 快速产物编译 +docker build -t yi.admin:x.x.x -f DockerfileFast . + + + + +## 前端(待完善) +执行目录:Yi\Yi.Bbs.Vue3 + +#### 完整代码编译 +docker build -t yi.bbs:x.x.x -f Dockerfile . + +#### 快速产物编译 +docker build -t yi.bbs:x.x.x -f DockerfileFast . diff --git a/Yi.Abp.Net8/Dockerfile b/Yi.Abp.Net8/Dockerfile new file mode 100644 index 00000000..20ca128a --- /dev/null +++ b/Yi.Abp.Net8/Dockerfile @@ -0,0 +1,22 @@ +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +USER root +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime +RUN echo "Asia/Shanghai" > /etc/timezone +WORKDIR /app +EXPOSE 19001 + +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /main +COPY . . +WORKDIR "/main/src/Yi.Abp.Web" +RUN dotnet restore "Yi.Abp.Web.csproj" + +FROM build AS publish +WORKDIR "/main/src/Yi.Abp.Web" +RUN dotnet publish "Yi.Abp.Web.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "Yi.Abp.Web.dll"] \ No newline at end of file diff --git a/Yi.Abp.Net8/DockerfileFast b/Yi.Abp.Net8/DockerfileFast new file mode 100644 index 00000000..ae53a942 --- /dev/null +++ b/Yi.Abp.Net8/DockerfileFast @@ -0,0 +1,11 @@ +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +USER root +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime +RUN echo "Asia/Shanghai" > /etc/timezone +WORKDIR /app +EXPOSE 19001 + +FROM base AS final +WORKDIR /app +COPY ["./publish","."] +ENTRYPOINT ["dotnet", "Yi.Abp.Web.dll"] \ No newline at end of file diff --git a/Yi.Abp.Net8/Yi.Abp.sln b/Yi.Abp.Net8/Yi.Abp.sln index f84b1031..af747dc0 100644 --- a/Yi.Abp.Net8/Yi.Abp.sln +++ b/Yi.Abp.Net8/Yi.Abp.sln @@ -36,6 +36,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution version.props = version.props publish.bat = publish.bat publish_Demo.bat = publish_Demo.bat + Dockerfile = Dockerfile + DockerfileFast = DockerfileFast EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.SqlSugarCore.Abstractions", "framework\Yi.Framework.SqlSugarCore.Abstractions\Yi.Framework.SqlSugarCore.Abstractions.csproj", "{FD6D6860-3753-4747-8A26-977E4A3001F9}" diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/Dockerfile b/Yi.Abp.Net8/src/Yi.Abp.Web/Dockerfile deleted file mode 100644 index 21592fb0..00000000 --- a/Yi.Abp.Net8/src/Yi.Abp.Web/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. - -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base -USER app -WORKDIR /app -EXPOSE 8080 - -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -ARG BUILD_CONFIGURATION=Release -WORKDIR /src - -COPY ./common.props ./ -COPY ["src/Yi.Abp.Web/Yi.Abp.Web.csproj", "src/Yi.Abp.Web/"] -COPY ["framework/Yi.Framework.AspNetCore.Authentication.OAuth/Yi.Framework.AspNetCore.Authentication.OAuth.csproj", "framework/Yi.Framework.AspNetCore.Authentication.OAuth/"] -COPY ["framework/Yi.Framework.AspNetCore/Yi.Framework.AspNetCore.csproj", "framework/Yi.Framework.AspNetCore/"] -COPY ["framework/Yi.Framework.Core/Yi.Framework.Core.csproj", "framework/Yi.Framework.Core/"] -COPY ["src/Yi.Abp.Application/Yi.Abp.Application.csproj", "src/Yi.Abp.Application/"] -COPY ["framework/Yi.Framework.Ddd.Application/Yi.Framework.Ddd.Application.csproj", "framework/Yi.Framework.Ddd.Application/"] -COPY ["framework/Yi.Framework.Ddd.Application.Contracts/Yi.Framework.Ddd.Application.Contracts.csproj", "framework/Yi.Framework.Ddd.Application.Contracts/"] -COPY ["module/bbs/Yi.Framework.Bbs.Application/Yi.Framework.Bbs.Application.csproj", "module/bbs/Yi.Framework.Bbs.Application/"] -COPY ["module/rbac/Yi.Framework.Rbac.Application/Yi.Framework.Rbac.Application.csproj", "module/rbac/Yi.Framework.Rbac.Application/"] -COPY ["module/rbac/Yi.Framework.Rbac.Application.Contracts/Yi.Framework.Rbac.Application.Contracts.csproj", "module/rbac/Yi.Framework.Rbac.Application.Contracts/"] -COPY ["module/rbac/Yi.Framework.Rbac.Domain.Shared/Yi.Framework.Rbac.Domain.Shared.csproj", "module/rbac/Yi.Framework.Rbac.Domain.Shared/"] -COPY ["framework/Yi.Framework.Mapster/Yi.Framework.Mapster.csproj", "framework/Yi.Framework.Mapster/"] -COPY ["framework/Yi.Framework.SqlSugarCore.Abstractions/Yi.Framework.SqlSugarCore.Abstractions.csproj", "framework/Yi.Framework.SqlSugarCore.Abstractions/"] -COPY ["module/rbac/Yi.Framework.Rbac.Domain/Yi.Framework.Rbac.Domain.csproj", "module/rbac/Yi.Framework.Rbac.Domain/"] -COPY ["module/bbs/Yi.Framework.Bbs.Application.Contracts/Yi.Framework.Bbs.Application.Contracts.csproj", "module/bbs/Yi.Framework.Bbs.Application.Contracts/"] -COPY ["module/bbs/Yi.Framework.Bbs.Domain.Shared/Yi.Framework.Bbs.Domain.Shared.csproj", "module/bbs/Yi.Framework.Bbs.Domain.Shared/"] -COPY ["module/bbs/Yi.Framework.Bbs.Domain/Yi.Framework.Bbs.Domain.csproj", "module/bbs/Yi.Framework.Bbs.Domain/"] -COPY ["src/Yi.Abp.Application.Contracts/Yi.Abp.Application.Contracts.csproj", "src/Yi.Abp.Application.Contracts/"] -COPY ["src/Yi.Abp.Domain.Shared/Yi.Abp.Domain.Shared.csproj", "src/Yi.Abp.Domain.Shared/"] -COPY ["src/Yi.Abp.Domain/Yi.Abp.Domain.csproj", "src/Yi.Abp.Domain/"] -COPY ["src/Yi.Abp.SqlSugarCore/Yi.Abp.SqlSugarCore.csproj", "src/Yi.Abp.SqlSugarCore/"] -COPY ["framework/Yi.Framework.SqlSugarCore/Yi.Framework.SqlSugarCore.csproj", "framework/Yi.Framework.SqlSugarCore/"] -COPY ["module/bbs/Yi.Framework.Bbs.SqlSugarCore/Yi.Framework.Bbs.SqlSugarCore.csproj", "module/bbs/Yi.Framework.Bbs.SqlSugarCore/"] -COPY ["module/rbac/Yi.Framework.Rbac.SqlSugarCore/Yi.Framework.Rbac.SqlSugarCore.csproj", "module/rbac/Yi.Framework.Rbac.SqlSugarCore/"] -RUN dotnet restore "./src/Yi.Abp.Web/./Yi.Abp.Web.csproj" -COPY . . -WORKDIR "/src/src/Yi.Abp.Web" -RUN dotnet build "./Yi.Abp.Web.csproj" -c $BUILD_CONFIGURATION -o /app/build - -FROM build AS publish -ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "./Yi.Abp.Web.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "Yi.Abp.Web.dll"] \ No newline at end of file diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/README-DOCKER-BUILD.md b/Yi.Abp.Net8/src/Yi.Abp.Web/README-DOCKER-BUILD.md deleted file mode 100644 index 5589c57c..00000000 --- a/Yi.Abp.Net8/src/Yi.Abp.Web/README-DOCKER-BUILD.md +++ /dev/null @@ -1,22 +0,0 @@ -# Docker 构建说明 - -## 执行命令 - -```shell -# 在Yi.Abp.Net8 目录下执行 -docker build -t admin-server:${BUILD_NUMBER} -f ./src/Yi.Abp.Web/Dockerfile . - -``` - -## 注意 - -NuGet 源国内访问有时候会报错,可以考虑切换成华为源,加上参数 - -```shell -RUN dotnet restore --source https://repo.huaweicloud.com/repository/nuget/v3/index.json "./src/Yi.Abp.Web/./Yi.Abp.Web.csproj" - -RUN dotnet build --source https://repo.huaweicloud.com/repository/nuget/v3/index.json "./Yi.Abp.Web.csproj" -c $BUILD_CONFIGURATION -o /app/build - -RUN dotnet publish --source https://repo.huaweicloud.com/repository/nuget/v3/index.json "./Yi.Abp.Web.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false - -``` \ No newline at end of file diff --git a/Yi.Bbs.Vue3/Dockerfile b/Yi.Bbs.Vue3/Dockerfile new file mode 100644 index 00000000..40422ba0 --- /dev/null +++ b/Yi.Bbs.Vue3/Dockerfile @@ -0,0 +1,14 @@ +FROM nginx as base +COPY nginx.conf /etc/nginx/nginx.conf +EXPOSE 18001 + +FROM node:20.18 as publish +WORKDIR /main +COPY . . +RUN npm i +RUN npm run build + +FROM base AS final +WORKDIR /app +COPY --from=publish /dist/* . +ENTRYPOINT ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/Yi.Bbs.Vue3/DockerfileFast b/Yi.Bbs.Vue3/DockerfileFast new file mode 100644 index 00000000..07a7ebb3 --- /dev/null +++ b/Yi.Bbs.Vue3/DockerfileFast @@ -0,0 +1,8 @@ +FROM nginx as base +COPY nginx.conf /etc/nginx/nginx.conf +EXPOSE 18001 + +FROM base AS final +WORKDIR /app +COPY ["./dist/","."] +ENTRYPOINT ["nginx", "-g", "daemon off;"] \ No newline at end of file