feat: 新增docker支持
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -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
|
||||
|
||||
@@ -27,4 +27,7 @@ README.md
|
||||
!.git/HEAD
|
||||
!.git/config
|
||||
!.git/packed-refs
|
||||
!.git/refs/heads/**
|
||||
!.git/refs/heads/**
|
||||
appsettings.Development.json
|
||||
appsettings.Production.json
|
||||
appsettings.Staging.json
|
||||
22
Yi.Abp.Net8/Docker-Readme.md
Normal file
22
Yi.Abp.Net8/Docker-Readme.md
Normal file
@@ -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 .
|
||||
22
Yi.Abp.Net8/Dockerfile
Normal file
22
Yi.Abp.Net8/Dockerfile
Normal file
@@ -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"]
|
||||
11
Yi.Abp.Net8/DockerfileFast
Normal file
11
Yi.Abp.Net8/DockerfileFast
Normal file
@@ -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"]
|
||||
@@ -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}"
|
||||
|
||||
@@ -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"]
|
||||
@@ -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
|
||||
|
||||
```
|
||||
14
Yi.Bbs.Vue3/Dockerfile
Normal file
14
Yi.Bbs.Vue3/Dockerfile
Normal file
@@ -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;"]
|
||||
8
Yi.Bbs.Vue3/DockerfileFast
Normal file
8
Yi.Bbs.Vue3/DockerfileFast
Normal file
@@ -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;"]
|
||||
Reference in New Issue
Block a user