Dockerfile
文件(如果还未有)# 使用 .NET 官方镜像作为构建环境
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 80
# 构建阶段
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["MyBlog.csproj", "./"]
RUN dotnet restore
COPY . .
RUN dotnet build -c Release -o /app/build
# 发布阶段
FROM build AS publish
RUN dotnet publish -c Release -o /app/publish
# 最终运行阶段
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyBlog.dll"]
docker build -t myblog .
docker run -d -p 8080:80 myblog
你可以访问 http://localhost:8080
查看博客首页。
我们使用 GitHub Actions 来实现每次提交自动构建和部署。
.github/workflows/deploy.yml
name: Build and Deploy
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
version: '8.0.x'
- name: Restore dependencies
run: dotnet restore
- name: Build project
run: dotnet build --configuration Release --no-restore
- name: Publish app
run: dotnet publish -c Release -o ./publish
- name: Build Docker image
run: |
docker build -t your-dockerhub-username/myblog:latest .
- name: Push to Docker Hub
run: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker push your-dockerhub-username/myblog:latest
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
⚠️ 替换
your-dockerhub-username
,并在 GitHub Secrets 中设置DOCKER_USERNAME
和DOCKER_PASSWORD
。
your-dockerhub-username/myblog:latest
DefaultConnection=Server=tcp:yourserver.database.windows.net;Database=yourdb;User ID=youruser;Password=yourpassword;Encrypt=True;
你也可以将镜像推送到私有仓库,然后在本地服务器上拉取并运行:
docker pull your-dockerhub-username/myblog:latest
docker run -d -p 80:80 your-dockerhub-username/myblog:latest
建议你在 GitHub 上准备一个漂亮的 README 页面,包括:
示例结构:
# MyBlog — 个人博客系统
这是一个基于 ASP.NET Core 8 的博客系统,支持用户注册、文章管理、Markdown 编写、评论、搜索等功能。
## ️ 技术栈
- ASP.NET Core Razor Pages
- Entity Framework Core + Identity
- Markdown 渲染(Markdig)
- Docker 容器化部署
- GitHub Actions 自动化 CI/CD
## 截图

## 部署地址
[在线演示地址](https://your-blog.azurewebsites.net)
## 开发指南
克隆项目:
```bash
git clone https://github.com/yourname/MyBlog.git
cd MyBlog
dotnet run
启动数据库(可使用 LocalDB 或 SQL Server)并执行迁移:
dotnet ef database update
启动开发服务器:
dotnet watch run
欢迎贡献 PR!
MIT License
---
## 五、提交 Git 版本
```bash
git add .
git commit -m "Day8: Added Docker support, GitHub Actions CI/CD and deployment documentation"
今天你完成了:
✅ 使用 Docker 构建并运行博客系统
✅ 配置 GitHub Actions 实现自动化构建和部署
✅ 成功部署到云平台(如 Azure App Service)
✅ 准备了作品集展示页面
✅ 提交版本控制记录
恭喜你完成了整个博客系统的开发、测试、部署全过程!
你现在拥有一个完整的 全栈 Web 应用项目,可以用于求职作品集、课程作业、技术分享等用途!