添加项目基础结构和配置文件
Some checks failed
CI/CD Pipeline / build (push) Has been cancelled
CI/CD Pipeline / deploy (push) Has been cancelled

This commit is contained in:
fish
2026-03-26 20:49:14 +08:00
parent 1ad8ec9be5
commit 9b08ae17fc
6 changed files with 146 additions and 0 deletions

17
.env.example Normal file
View File

@@ -0,0 +1,17 @@
# 环境变量配置
# 应用配置
APP_NAME=asset_helper
APP_ENV=development
APP_DEBUG=True
APP_SECRET_KEY=your-secret-key-here
# 数据库配置
DATABASE_URL=sqlite:///asset_helper.db
# 服务器配置
SERVER_HOST=0.0.0.0
SERVER_PORT=8000
# 其他配置
LOG_LEVEL=INFO

View File

@@ -0,0 +1,44 @@
name: CI/CD Pipeline
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Build Docker image
run: |
cd deploy
docker-compose build
deploy:
needs: build
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Deploy
run: |
cd deploy
docker-compose up -d

24
deploy/docker-compose.yml Normal file
View File

@@ -0,0 +1,24 @@
version: '3.8'
services:
app:
build:
context: ..
dockerfile: deploy/docker/Dockerfile
ports:
- "8000:8000"
env_file:
- .env
volumes:
- ..:/app
depends_on:
- nginx
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ..:/app
restart: always

10
deploy/docker/Dockerfile Normal file
View File

@@ -0,0 +1,10 @@
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]

34
deploy/nginx/nginx.conf Normal file
View File

@@ -0,0 +1,34 @@
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://app:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static/ {
alias /app/static/;
expires 30d;
}
location /media/ {
alias /app/media/;
expires 30d;
}
}
}

17
requirements.txt Normal file
View File

@@ -0,0 +1,17 @@
# 项目依赖
# Web 框架
Flask==2.0.1
# 数据库
SQLAlchemy==1.4.32
# 环境变量管理
python-dotenv==0.19.2
# 工具库
requests==2.27.1
pytest==6.2.5
# 生产环境
gunicorn==20.1.0