diff --git a/.gitea/workflows/task-demo.yml b/.gitea/workflows/task-demo.yml index 6a9ea0f..caa492e 100644 --- a/.gitea/workflows/task-demo.yml +++ b/.gitea/workflows/task-demo.yml @@ -15,5 +15,19 @@ jobs: run: git clone ${{ gitea.server_url }}/${{ gitea.repository }} . - name: List files run: ls -la - - name: docker command - run: docker ps -a \ No newline at end of file + - name: Stop running containers + run: | + docker compose down || true + - name: Remove old image + run: | + IMAGE_NAME=$(basename "$PWD") + echo "Removing old image: $IMAGE_NAME" + docker images | grep "$IMAGE_NAME" && docker rmi -f $(docker images "$IMAGE_NAME" -q) || echo "No old image found." + - name: Build new image + run: | + docker build -t $(basename "$PWD"):latest . + - name: Start containers + run: | + docker compose up -d + - name: Show container status + run: docker ps \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b3cb394 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +# 使用官方轻量级 Python 基础镜像 +FROM python:3.10-slim + +# 设置工作目录(容器内路径) +WORKDIR /app + +# 将项目文件复制到容器中 +COPY . /app + +# (可选)如果你有 requirements.txt,则先复制并安装依赖 +RUN if [ -f requirements.txt ]; then \ + pip install --no-cache-dir -r requirements.txt; \ + fi + +# 暴露服务端口(例如 Flask / FastAPI 可监听 8000) +EXPOSE 8000 + +# 设置环境变量(防止 Python 缓存文件) +ENV PYTHONUNBUFFERED=1 + +# 启动命令 +CMD ["python", "main.py"] diff --git a/docker-compose.yml b/docker-compose.yml index e69de29..4c8798f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.8" + +services: + app: + build: . + container_name: python_app + restart: always + ports: + - "8000:8000" + environment: + - PYTHONUNBUFFERED=1 + volumes: + - .:/app + command: python main.py