我正在构建一个工作流来测试、构建一个 docker 映像并将其推送到 GitHub 私有存储库。
我曾经在 ububntu-latest 上运行该操作并使用特定的 PHP 版本和一些环境构建,但由于它与生产构建不同,因此存在一些问题。
我想使用与生产相同的环境,所以我使用了一个使用 php7.3 的容器,我在 ubuntu-latest 上运行操作后调用了它
我现在面临的问题是在成功更新作曲家后,我无法调用默认步骤 tp build docker image。我在“设置 QEMU”步骤中收到此错误
错误:无法找到可执行文件:docker。请验证文件路径是否存在,或者该文件是否可以在 PATH 环境变量指定的目录中找到。还要检查文件模式以验证文件是否可执行。
这是我的行动
名称:构建和发布 Docker 以进行开发 上: 推: 分支:发展 工作: 建造: 运行:ubuntu-latest 容器: 图片:egahmad/php7.3-laravel-apache-development # 卷: # - app_files:/var/www/html/ 服务: mysql: 图片:mysql:5.7 环境: MYSQL_DATABASE:分贝 MYSQL_USER:用户 MYSQL_PASSWORD:秘密 MYSQL_ROOT_PASSWORD:秘密 端口: - 3306:3306 选项: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 脚步: - 使用:actions/checkout@v2 - 名称:验证 TNT MySQL 连接 运行:| mysql --版本 sudo apt-get install -y default-mysql-client mysql --host mysql --port ${{ job.services.mysql.ports['3306'] }} -uuser -psecret -e "显示数据库" - 名称:复制 .env 运行:| php -r "file_exists('.env') || 复制('.env.cicd', '.env');" - 名称:安装依赖项 运行:作曲家安装 - 名称:生成密钥 运行:php artisan key:generate - 名称:目录权限 运行:chmod -R 777 存储引导/缓存 - 名称:通过 PHPUnit 执行测试(单元和功能测试) 环境: MYSQL_DATABASE:分贝 DB_USERNAME:用户 DB_PASSWORD:秘密 DB_PORT: ${{ job.services.mysql.ports[3306] }} 运行:供应商/bin/phpunit - 名称:设置 QEMU 用途:docker/setup-qemu-action@v1 - 名称:设置 Docker Buildx 用途:docker/setup-buildx-action@v1 - 名称:登录 GitHub 容器注册表 用途:docker/login-action@v1 和: 注册:ghcr.io 用户名:${{ github.repository_owner }} 密码:${{ secrets.GITHUB_SECRET }} - 名称:构建和推送 用途:docker/build-push-action@v2 和: 语境: 。 文件:./Dockerfile 推:真 目标:ci 标签: ghcr.io/account/image:development 构建参数:| GITHUB_USER=${{ 秘密.GITHUB_USERNAME }} GITHUB_PASSWORD=${{ 秘密.CR_PAT }} - 名称:图像摘要 运行: echo ${{ steps.docker_build.outputs.digest }}