我正在构建一个工作流来测试、构建docker映像并将其推送到GitHub私有存储库。
我曾经在ububntu最新版本上运行该操作,并使用特定的PHP版本和一些环境构建,但由于它与生产构建不完全相同,因此出现了一些问题。
我想使用与生产相同的环境,所以我使用了一个利用php7.3的容器,在ubuntu最新版本上运行操作后调用了该容器
我现在面临的问题是,在成功更新composer之后,我无法调用默认步骤tp build docker image。我在“设置QEMU”步骤中遇到此错误
Error: Unable to locate executable file: docker. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.
这是我的行动
name: Build and Publish Docker for development on: push: branches: development jobs: build: runs-on: ubuntu-latest container: image: egahmad/php7.3-laravel-apache-development # volumes: # - app_files:/var/www/html/ services: mysql: image: mysql:5.7 env: MYSQL_DATABASE: db MYSQL_USER: user MYSQL_PASSWORD: secret MYSQL_ROOT_PASSWORD: secret ports: - 3306:3306 options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 steps: - uses: actions/checkout@v2 - name: Verify TNT MySQL connection run: | mysql --version sudo apt-get install -y default-mysql-client mysql --host mysql --port ${{ job.services.mysql.ports['3306'] }} -uuser -psecret -e "SHOW DATABASES" - name: Copy .env run: | php -r "file_exists('.env') || copy('.env.cicd', '.env');" - name: Install Dependencies run: composer install - name: Generate key run: php artisan key:generate - name: Directory Permissions run: chmod -R 777 storage bootstrap/cache - name: Execute tests (Unit and Feature tests) via PHPUnit env: MYSQL_DATABASE: db DB_USERNAME: user DB_PASSWORD: secret DB_PORT: ${{ job.services.mysql.ports[3306] }} run: vendor/bin/phpunit - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to GitHub Container Registry uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_SECRET }} - name: Build and push uses: docker/build-push-action@v2 with: context: . file: ./Dockerfile push: true target: ci tags: ghcr.io/account/image:development build-args: | GITHUB_USER=${{ secrets.GITHUB_USERNAME }} GITHUB_PASSWORD=${{ secrets.CR_PAT }} - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }}
在egahmad/php7.3-laravel-apache-development上没有docker命令,我不认为qemu步骤设计为在容器中运行(它们正在对内核进行更改)。要在ubuntu最新主机上运行qemu步骤,我相信您需要删除container部分。如果步骤需要此环境,可以尝试将作业拆分为多个作业,其中一些步骤在容器中运行,其他步骤直接在主机上运行。
如果您在Github Actions中执行所有这些步骤,因为您的docker构建需要已经创建的二进制文件,我建议迁移到多阶段构建。第一阶段是您的egahmad/php7.3-laravel-apache-Development
映像,运行您当前在GHA中执行的步骤,然后第二阶段将从第一阶段而不是构建上下文复制。
当我试图使用命令: 错误:发生了JNI错误,请检查您的安装并在线程“main”java中重试。lang.NoClassDefFoundError:org/apache/http/client/ClientProtocolException 它在eclipse中运行良好。请帮忙。
我正在学习Java,并试图用Swing制作一个非常简单的程序。我使用命令行java工具。 这是我第一次尝试制作.jar文件,所以如果这是一个琐碎的问题,我很抱歉。
我开始使用GitHub Actions,并且能够为Elixir设置CI管道,操作构建和测试没有任何问题。我还想使用heroku操作部署应用程序,所以我继续添加了GitHub中可用的应用程序,但在这样做之后,我收到了以下错误: 无效的工作流文件每个步骤都必须定义一个用途或运行键 这是我的工作流程在添加heroku操作之前的样子: 这就是我添加heroku动作的方式 以下是错误以了解更多详细信息。
我收到一个错误,这个读取while循环。即使我用打印所有内容,它也会显示count tt==0。这意味着,while循环甚至不工作? 尝试捕获输入。 这是我有问题的代码。 这是我正在阅读的文本文件
问题内容: 我正在尝试将Postgres与Docker一起构建Flask应用程序。我想连接到Postgres的AWS RDS实例,但是将Docker用于我的Flask应用程序。但是,在尝试设置时会遇到错误,因为找不到。这是错误: 这是我的: 许多其他问题在本地似乎也有类似的问题,但没有一个涉及使用Docker。 这似乎是一个Docker问题,因为我可以设置本地虚拟环境,并且安装正常,因为我在本地安
我完全按照这个例子,[http://kubernetes.io/docs/hellonode/,] 在我运行[kubectl run hello-node--image=gcr.io/project_id/hello-node:v1--port=8080 deployment“hello-node”created]之后。pod运行不正常,我得到了CrashLoopBackOff状态,我没有部署执行