2 changed files with 49 additions and 143 deletions
@ -1,183 +1,87 @@ |
|||||
# Docker部署 |
# Docker 部署 |
||||
## Lion.AbpPro.HttpApi.Host |
|
||||
|
|
||||
- 在Lion.AbpPro.HttpApi.Host目录下执行 |
## 后端 |
||||
|
|
||||
```bash |
- 在 aspnetcore 目录下执行 |
||||
dotnet publish -o publish |
- 修改 appsetting.Production.json 配置 |
||||
``` |
- 数据库连接 |
||||
|
- Redis 连接 |
||||
- 生成 Docker 镜像 |
- Rabbitmq 连接(可选) |
||||
|
|
||||
```bash |
|
||||
docker build -t Lion.AbpPro.HttpApi.Host . |
|
||||
``` |
|
||||
|
|
||||
- 运行容器 |
|
||||
|
|
||||
```bash |
|
||||
docker run -itd --name Lion.AbpPro.HttpApi.Host -p 8011:80 Lion.AbpPro.HttpApi.Host |
|
||||
``` |
|
||||
|
|
||||
- Dockerfile 文件 |
### Dockerfile |
||||
|
|
||||
```yml |
```yaml |
||||
FROM mcr.microsoft.com/dotnet/aspnet:6.0 |
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base |
||||
|
|
||||
# 创建目录 |
|
||||
RUN mkdir /app |
|
||||
|
|
||||
COPY publish /app |
|
||||
|
|
||||
RUN echo "deb http://mirrors.aliyun.com/debian/ bullseye main non-free contrib" > /etc/apt/sources.list && \ |
|
||||
echo "deb-src http://mirrors.aliyun.com/debian/ bullseye main non-free contrib" >> /etc/apt/sources.list && \ |
|
||||
echo "deb http://mirrors.aliyun.com/debian-security/ bullseye-security main" >> /etc/apt/sources.list && \ |
|
||||
echo "deb-src http://mirrors.aliyun.com/debian-security/ bullseye-security main" >> /etc/apt/sources.list && \ |
|
||||
echo "deb http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >> /etc/apt/sources.list && \ |
|
||||
echo "deb-src http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >> /etc/apt/sources.list && \ |
|
||||
echo "deb http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >> /etc/apt/sources.list && \ |
|
||||
echo "deb-src http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >> /etc/apt/sources.list && \ |
|
||||
apt-get update && \ |
|
||||
apt-get install libgdiplus libc6-dev -y && \ |
|
||||
ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll && \ |
|
||||
ln -s /usr/lib/x86_64-linux-gnu/libdl.so /usr/lib/libdl.dll && apt-get clean |
|
||||
|
|
||||
# 设置工作目录 |
|
||||
WORKDIR /app |
WORKDIR /app |
||||
|
|
||||
# 暴露80端口 |
|
||||
EXPOSE 80 |
EXPOSE 80 |
||||
# 设置时区 .net6 才有这个问题 |
EXPOSE 443 |
||||
ENV TZ=Asia/Shanghai |
ENV TZ=Asia/Shanghai |
||||
|
|
||||
# 设置环境变量 |
|
||||
ENV ASPNETCORE_ENVIRONMENT=Production |
ENV ASPNETCORE_ENVIRONMENT=Production |
||||
|
|
||||
ENTRYPOINT ["dotnet", "Lion.AbpPro.HttpApi.Host.dll"] |
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build |
||||
|
WORKDIR /src |
||||
``` |
COPY . . |
||||
|
WORKDIR "/src/services/host/Lion.AbpPro.HttpApi.Host" |
||||
## Lion.AbpPro.IdentityServer |
RUN dotnet build "Lion.AbpPro.HttpApi.Host.csproj" -c Release -o /app/build |
||||
|
|
||||
- 在Lion.AbpPro.IdentityServer目录下执行 |
|
||||
|
|
||||
```bash |
|
||||
dotnet public -o publish |
|
||||
``` |
|
||||
|
|
||||
- 生成 Docker 镜像 |
|
||||
|
|
||||
```bash |
|
||||
docker build -t Lion.AbpPro.IdentityServer . |
|
||||
``` |
|
||||
|
|
||||
- 运行容器 |
|
||||
|
|
||||
```bash |
|
||||
docker run -itd --name Lion.AbpPro.IdentityServer -p 8013:80 Lion.AbpPro.IdentityServer |
|
||||
``` |
|
||||
|
|
||||
- Dockerfile 文件 |
|
||||
|
|
||||
```yml |
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:6.0 |
|
||||
|
|
||||
# 创建目录 |
|
||||
RUN mkdir /app |
|
||||
|
|
||||
COPY publish /app |
FROM build AS publish |
||||
|
RUN dotnet publish "Lion.AbpPro.HttpApi.Host.csproj" -c Release -o /app/publish /p:UseAppHost=false |
||||
|
|
||||
# 设置工作目录 |
FROM base AS final |
||||
WORKDIR /app |
WORKDIR /app |
||||
|
COPY --from=publish /app/publish . |
||||
# 暴露80端口 |
ENTRYPOINT ["dotnet", "Lion.AbpPro.HttpApi.Host.dll"] |
||||
EXPOSE 80 |
|
||||
|
|
||||
# 设置时区 .net6 才有这个问题 |
|
||||
ENV TZ=Asia/Shanghai |
|
||||
|
|
||||
# 设置环境变量 |
|
||||
ENV ASPNETCORE_ENVIRONMENT=Production |
|
||||
|
|
||||
ENTRYPOINT ["dotnet", "Lion.AbpPro.IdentityServer.dll"] |
|
||||
|
|
||||
``` |
``` |
||||
|
|
||||
|
### 构建镜像 |
||||
## Lion.AbpPro.WebGateway |
|
||||
|
|
||||
- 在Lion.AbpPro.WebGateway目录下执行 |
|
||||
|
|
||||
```bash |
```bash |
||||
dotnet public -o publish |
docker build -t Lion.AbpPro.HttpApi.Host . |
||||
``` |
``` |
||||
|
|
||||
- 生成 Docker 镜像 |
### 启动容器 |
||||
|
|
||||
```bash |
```bash |
||||
docker build -t Lion.AbpPro.WebGateway . |
docker run -itd --name Lion.AbpPro.HttpApi.Host -p 8011:80 Lion.AbpPro.HttpApi.Host |
||||
``` |
``` |
||||
|
|
||||
- 运行容器 |
## 前端 |
||||
|
|
||||
```bash |
- 修改 env.production 接口地址为以上你发布的地址 |
||||
docker run -itd --name Lion.AbpPro.WebGateway -p 8013:80 Lion.AbpPro.WebGateway |
- 打包项目 |
||||
``` |
|
||||
|
|
||||
- Dockerfile 文件 |
### Dockerfile |
||||
|
|
||||
```yml |
```yml |
||||
FROM mcr.microsoft.com/dotnet/aspnet:6.0 |
FROM node:16-alpine as build-stage |
||||
|
|
||||
# 创建目录 |
|
||||
RUN mkdir /app |
|
||||
|
|
||||
COPY publish /app |
|
||||
|
|
||||
# 设置工作目录 |
|
||||
WORKDIR /app |
WORKDIR /app |
||||
|
COPY . ./ |
||||
# 暴露80端口 |
ENV NODE_OPTIONS=--max-old-space-size=16384 |
||||
|
RUN npm install pnpm -g |
||||
|
RUN pnpm i |
||||
|
RUN pnpm build |
||||
|
|
||||
|
|
||||
|
FROM nginx:1.17.3-alpine as production-stage |
||||
|
COPY --from=build-stage app/_nginx/nginx.conf /etc/nginx/nginx.conf |
||||
|
COPY --from=build-stage app/_nginx/env.js /etc/nginx/env.js |
||||
|
COPY --from=build-stage app/_nginx/default.conf /etc/nginx/conf.d/default.conf |
||||
|
COPY --from=build-stage app/dist/ /usr/share/nginx/html |
||||
EXPOSE 80 |
EXPOSE 80 |
||||
|
|
||||
# 设置时区 .net6 才有这个问题 |
CMD ["nginx", "-g", "daemon off;"] |
||||
ENV TZ=Asia/Shanghai |
|
||||
|
|
||||
# 设置环境变量 |
|
||||
ENV ASPNETCORE_ENVIRONMENT=Production |
|
||||
|
|
||||
ENTRYPOINT ["dotnet", "Lion.AbpPro.WebGateway.dll"] |
|
||||
``` |
|
||||
|
|
||||
|
|
||||
## Vue3 |
|
||||
- 修改env.production 接口地址为以上你发布的地址 |
|
||||
- 打包项目 |
|
||||
|
|
||||
```bash |
|
||||
npm run build |
|
||||
``` |
``` |
||||
|
|
||||
- 生产Docker镜像 |
### 构建镜像 |
||||
|
|
||||
```bash |
```bash |
||||
docker build -t Lion.AbpPro.Vue3 . |
docker build -t Lion.AbpPro.Vue3 . |
||||
``` |
``` |
||||
|
|
||||
- 运行容器 |
### 启动容器 |
||||
|
|
||||
```bash |
```bash |
||||
docker run -itd --name Lion.AbpPro.Vue3 -p 8012:80 Lion.AbpPro.Vue3 |
docker run -itd --name Lion.AbpPro.Vue3 -p 8012:80 Lion.AbpPro.Vue3 |
||||
``` |
``` |
||||
|
|
||||
- Dockerfile 文件 |
!!! WARNING "检查跨域设置,请查看跨域文档" |
||||
|
|
||||
```yml |
|
||||
FROM nginx:1.17.3-alpine as base |
|
||||
EXPOSE 80 |
|
||||
COPY /_nginx/nginx.conf /etc/nginx/nginx.conf |
|
||||
COPY /_nginx/env.js /etc/nginx/env.js |
|
||||
COPY /_nginx/default.conf /etc/nginx/conf.d/default.conf |
|
||||
COPY /dist/ /usr/share/nginx/html |
|
||||
CMD ["nginx", "-g", "daemon off;"] |
|
||||
``` |
|
||||
|
|||||
Loading…
Reference in new issue