2 changed files with 49 additions and 143 deletions
@ -1,183 +1,87 @@ |
|||
# Docker部署 |
|||
## Lion.AbpPro.HttpApi.Host |
|||
# Docker 部署 |
|||
|
|||
- 在Lion.AbpPro.HttpApi.Host目录下执行 |
|||
## 后端 |
|||
|
|||
```bash |
|||
dotnet publish -o publish |
|||
``` |
|||
|
|||
- 生成 Docker 镜像 |
|||
|
|||
```bash |
|||
docker build -t Lion.AbpPro.HttpApi.Host . |
|||
``` |
|||
|
|||
- 运行容器 |
|||
|
|||
```bash |
|||
docker run -itd --name Lion.AbpPro.HttpApi.Host -p 8011:80 Lion.AbpPro.HttpApi.Host |
|||
``` |
|||
- 在 aspnetcore 目录下执行 |
|||
- 修改 appsetting.Production.json 配置 |
|||
- 数据库连接 |
|||
- Redis 连接 |
|||
- Rabbitmq 连接(可选) |
|||
|
|||
- Dockerfile 文件 |
|||
### Dockerfile |
|||
|
|||
```yml |
|||
FROM mcr.microsoft.com/dotnet/aspnet:6.0 |
|||
|
|||
# 创建目录 |
|||
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 |
|||
|
|||
# 设置工作目录 |
|||
```yaml |
|||
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base |
|||
WORKDIR /app |
|||
|
|||
# 暴露80端口 |
|||
EXPOSE 80 |
|||
# 设置时区 .net6 才有这个问题 |
|||
EXPOSE 443 |
|||
ENV TZ=Asia/Shanghai |
|||
|
|||
# 设置环境变量 |
|||
ENV ASPNETCORE_ENVIRONMENT=Production |
|||
|
|||
ENTRYPOINT ["dotnet", "Lion.AbpPro.HttpApi.Host.dll"] |
|||
|
|||
``` |
|||
|
|||
## Lion.AbpPro.IdentityServer |
|||
|
|||
- 在Lion.AbpPro.IdentityServer目录下执行 |
|||
|
|||
```bash |
|||
dotnet public -o publish |
|||
``` |
|||
|
|||
- 生成 Docker 镜像 |
|||
|
|||
```bash |
|||
docker build -t Lion.AbpPro.IdentityServer . |
|||
``` |
|||
|
|||
- 运行容器 |
|||
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build |
|||
WORKDIR /src |
|||
COPY . . |
|||
WORKDIR "/src/services/host/Lion.AbpPro.HttpApi.Host" |
|||
RUN dotnet build "Lion.AbpPro.HttpApi.Host.csproj" -c Release -o /app/build |
|||
|
|||
```bash |
|||
docker run -itd --name Lion.AbpPro.IdentityServer -p 8013:80 Lion.AbpPro.IdentityServer |
|||
``` |
|||
FROM build AS publish |
|||
RUN dotnet publish "Lion.AbpPro.HttpApi.Host.csproj" -c Release -o /app/publish /p:UseAppHost=false |
|||
|
|||
- Dockerfile 文件 |
|||
|
|||
```yml |
|||
FROM mcr.microsoft.com/dotnet/aspnet:6.0 |
|||
|
|||
# 创建目录 |
|||
RUN mkdir /app |
|||
|
|||
COPY publish /app |
|||
|
|||
# 设置工作目录 |
|||
FROM base AS final |
|||
WORKDIR /app |
|||
|
|||
# 暴露80端口 |
|||
EXPOSE 80 |
|||
|
|||
# 设置时区 .net6 才有这个问题 |
|||
ENV TZ=Asia/Shanghai |
|||
|
|||
# 设置环境变量 |
|||
ENV ASPNETCORE_ENVIRONMENT=Production |
|||
|
|||
ENTRYPOINT ["dotnet", "Lion.AbpPro.IdentityServer.dll"] |
|||
|
|||
COPY --from=publish /app/publish . |
|||
ENTRYPOINT ["dotnet", "Lion.AbpPro.HttpApi.Host.dll"] |
|||
``` |
|||
|
|||
|
|||
## Lion.AbpPro.WebGateway |
|||
|
|||
- 在Lion.AbpPro.WebGateway目录下执行 |
|||
### 构建镜像 |
|||
|
|||
```bash |
|||
dotnet public -o publish |
|||
docker build -t Lion.AbpPro.HttpApi.Host . |
|||
``` |
|||
|
|||
- 生成 Docker 镜像 |
|||
### 启动容器 |
|||
|
|||
```bash |
|||
docker build -t Lion.AbpPro.WebGateway . |
|||
docker run -itd --name Lion.AbpPro.HttpApi.Host -p 8011:80 Lion.AbpPro.HttpApi.Host |
|||
``` |
|||
|
|||
- 运行容器 |
|||
## 前端 |
|||
|
|||
```bash |
|||
docker run -itd --name Lion.AbpPro.WebGateway -p 8013:80 Lion.AbpPro.WebGateway |
|||
``` |
|||
- 修改 env.production 接口地址为以上你发布的地址 |
|||
- 打包项目 |
|||
|
|||
- Dockerfile 文件 |
|||
### Dockerfile |
|||
|
|||
```yml |
|||
FROM mcr.microsoft.com/dotnet/aspnet:6.0 |
|||
|
|||
# 创建目录 |
|||
RUN mkdir /app |
|||
|
|||
COPY publish /app |
|||
|
|||
# 设置工作目录 |
|||
FROM node:16-alpine as build-stage |
|||
WORKDIR /app |
|||
|
|||
# 暴露80端口 |
|||
COPY . ./ |
|||
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 |
|||
|
|||
# 设置时区 .net6 才有这个问题 |
|||
ENV TZ=Asia/Shanghai |
|||
|
|||
# 设置环境变量 |
|||
ENV ASPNETCORE_ENVIRONMENT=Production |
|||
|
|||
ENTRYPOINT ["dotnet", "Lion.AbpPro.WebGateway.dll"] |
|||
``` |
|||
|
|||
|
|||
## Vue3 |
|||
- 修改env.production 接口地址为以上你发布的地址 |
|||
- 打包项目 |
|||
|
|||
```bash |
|||
npm run build |
|||
CMD ["nginx", "-g", "daemon off;"] |
|||
``` |
|||
|
|||
- 生产Docker镜像 |
|||
### 构建镜像 |
|||
|
|||
```bash |
|||
docker build -t Lion.AbpPro.Vue3 . |
|||
``` |
|||
|
|||
- 运行容器 |
|||
### 启动容器 |
|||
|
|||
```bash |
|||
docker run -itd --name Lion.AbpPro.Vue3 -p 8012:80 Lion.AbpPro.Vue3 |
|||
``` |
|||
|
|||
- Dockerfile 文件 |
|||
|
|||
```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;"] |
|||
``` |
|||
!!! WARNING "检查跨域设置,请查看跨域文档" |
|||
|
|||
Loading…
Reference in new issue