Skip to content

Linux 部署

部署步骤如下:

1、生成发布文件

选择*.Host项目右键发布,点击新建配置文件,选择文件夹文件夹位置,相关设置完成后,点击发布

生成发布文件在Properties/PublishProfiles/FolderProfile.pubxml

xml
<?xml version="1.0" encoding="utf-8"?>
<!-- https://go.microsoft.com/fwlink/?LinkID=208121. -->
<Project>
  <PropertyGroup>
    <DeleteExistingFiles>false</DeleteExistingFiles>
    <ExcludeApp_Data>false</ExcludeApp_Data>
    <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <PublishProvider>FileSystem</PublishProvider>
    <PublishUrl>bin\Release\net9.0\publish\</PublishUrl>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <_TargetId>Folder</_TargetId>
    <SiteUrlToLaunchAfterPublish />
    <TargetFramework>net9.0</TargetFramework>
    <RuntimeIdentifier>linux-x64</RuntimeIdentifier>
    <ProjectGuid>6f47a41a-085e-4422-bb73-5a2cbaa07d9f</ProjectGuid>
    <SelfContained>false</SelfContained>
  </PropertyGroup>
</Project>

2、添加 Docker 部署文件

Dockerfile

Dockerfile
# 使用官方 ASP.NET Core 9.0 运行时镜像
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS publish
# 设置工作目录为 /app
WORKDIR /app
# 暴露容器端口 18010
EXPOSE 18010
# 将构建上下文(通常是项目目录)中的所有文件复制到容器的 /app 目录
COPY . .
# 设置容器时区为亚洲/上海(UTC+8)
ENV TZ=Asia/Shanghai
# 设置容器启动时执行的命令:运行 *.Host.dll 文件
ENTRYPOINT ["dotnet", "*.Host.dll"]

提示

其中 *.Host.dllbin/Release/net9.0/publish发布文件目录下的*.Host.dll,自行根据模块项目名修改

18010为模块端口,自行根据模块启动端口修改

docker-compose.yml

yml
version: '3'

services:
  admin:
    image: zhontai/admin:9.1.3
    build: 
      context: . 
      dockerfile: Dockerfile
    hostname: admin
    container_name: admin
    ports:
      - "18010:18010"
    volumes:
      - ./appsettings.json:/app/appsettings.json
      - ./ConfigCenter:/app/ConfigCenter
      - ../logs/:/logs
      - ./upload/:/app/upload
    restart: always
ports:  
  - "宿主机端口:容器端口"
volumes:  
  - 宿主机目录:容器目录

3、构建镜像并启动容器

bash
docker-compose up -d --build

-d:后台运行容器
--build:强制重新构建镜像(适用于代码更新后)

访问接口文档

http://localhost:18010/doc/admin/index.html

提示

如果无法访问,请先检查 ConfigCenter/appconfig.json.swagger.enabled 是否开启

4、查看服务状态

bash
docker-compose ps

5、查看日志

bash
docker-compose logs -f admin

6、停止并删除容器

bash
docker-compose down

7、删除镜像

  • 删除特定镜像(以你的 zhontai/admin:9.1.3 为例)
bash
docker rmi zhontai/admin:9.1.3
  • 强制删除(如果镜像被容器占用时)
bash
docker rmi -f zhontai/admin:9.1.3