From 9d32b4ac9734b5773c149dd09b60a48183f41278 Mon Sep 17 00:00:00 2001 From: starmen1265 Date: Sun, 1 Mar 2026 01:05:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BD=BF=E7=94=A8=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E4=B8=93=E7=94=A8=E9=95=9C=E5=83=8F=20gitea-runner-php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 创建 Dockerfile 包含 PHP + Node.js + Git + SSH - 所有 workflow 使用本地镜像避免拉取延迟 - 需要先构建镜像: docker build -t gitea-runner-php:latest . --- .gitea/workflows/ci.yml | 8 +++---- .gitea/workflows/deploy.yml | 10 ++------ .gitea/workflows/test.yml | 4 ++-- docker/runner/Dockerfile | 47 +++++++++++++++++++++++++++++++++++++ 4 files changed, 55 insertions(+), 14 deletions(-) create mode 100644 docker/runner/Dockerfile diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 5672dd1..4520a07 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -12,11 +12,10 @@ jobs: name: 代码检查 runs-on: linux container: - image: composer:latest + image: gitea-runner-php:latest steps: - name: 检出代码 run: | - apk add --no-cache git git clone -b ${{ github.ref_name }} ${{ github.server_url }}/${{ github.repository }}.git . git checkout ${{ github.sha }} @@ -47,12 +46,11 @@ jobs: name: 单元测试 runs-on: linux container: - image: composer:latest + image: gitea-runner-php:latest needs: lint steps: - name: 检出代码 run: | - apk add --no-cache git git clone -b ${{ github.ref_name }} ${{ github.server_url }}/${{ github.repository }}.git . git checkout ${{ github.sha }} @@ -71,6 +69,8 @@ jobs: ci-status: name: CI 状态 runs-on: linux + container: + image: gitea-runner-php:latest needs: [lint, test] if: always() steps: diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 385eb94..1c91528 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -20,12 +20,9 @@ jobs: name: 部署测试环境 runs-on: linux container: - image: alpine:latest + image: gitea-runner-php:latest if: github.ref == 'refs/heads/develop' steps: - - name: 安装依赖 - run: apk add --no-cache openssh-client bash - - name: 设置 SSH 密钥 run: | mkdir -p ~/.ssh @@ -67,12 +64,9 @@ jobs: name: 部署正式环境 runs-on: linux container: - image: alpine:latest + image: gitea-runner-php:latest if: github.ref == 'refs/heads/main' steps: - - name: 安装依赖 - run: apk add --no-cache openssh-client bash - - name: 设置 SSH 密钥 run: | mkdir -p ~/.ssh diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index c87dfff..b7dae9c 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -12,11 +12,10 @@ jobs: name: 快速测试 runs-on: linux container: - image: composer:latest + image: gitea-runner-php:latest steps: - name: 检出代码 run: | - apk add --no-cache git git clone -b ${{ github.ref_name }} ${{ github.server_url }}/${{ github.repository }}.git . git checkout ${{ github.sha }} @@ -24,6 +23,7 @@ jobs: run: | echo "PHP: $(php -v | head -1)" echo "Composer: $(composer --version)" + echo "Node: $(node -v)" - name: PHP 语法检查 run: | diff --git a/docker/runner/Dockerfile b/docker/runner/Dockerfile new file mode 100644 index 0000000..e05220d --- /dev/null +++ b/docker/runner/Dockerfile @@ -0,0 +1,47 @@ +# Gitea Actions Runner 专用镜像 +# 包含完整的开发环境:PHP + Node.js + Git + SSH + +FROM php:8.2-cli-bookworm + +# 安装系统依赖 +RUN apt-get update && apt-get install -y \ + git \ + curl \ + wget \ + unzip \ + openssh-client \ + nodejs \ + npm \ + libzip-dev \ + libxml2-dev \ + libcurl4-openssl-dev \ + libonig-dev \ + libmbstring-dev \ + sqlite3 \ + libsqlite3-dev \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# 安装 PHP 扩展 +RUN docker-php-ext-install \ + zip \ + xml \ + curl \ + mbstring \ + sqlite3 \ + pdo \ + pdo_sqlite \ + pdo_mysql \ + mysqli + +# 安装 Composer +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + +# 验证安装 +RUN php -v && composer --version && node -v && npm -v + +# 设置工作目录 +WORKDIR /workspace + +# 默认命令 +CMD ["bash"]