我正在构建一个工作流来测试、构建一个 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 }}