首页 > 解决方案 > 当我使用私有容器时,GitHub Actions Flutter-action 作业失败

问题描述

容器注册表设置

我使用以下 Dockerfile 创建一个映像,然后将其作为私有映像推送到谷歌云容器注册表。我想在我的工作流程中运行我的 CD 工作流程,以便我可以获取存储在我的映像中的部署凭据。

旁注:不确定这是否是管理敏感文件(例如.jks我需要将应用程序部署到 Play 商店的文件)的最安全方法。如果有人也能对此有所了解,我将不胜感激(不确定我是否应该将此旁注移至另一个 SO 问题)。

FROM ubuntu:latest

COPY Gemfile .
COPY Gemfile.lock .
COPY fastlane/ ./fastlane/

工作流配置

以下是我在.github/workflows/main.yml. 有关完整文件,请参见此处

# This is a basic workflow to help you get started with Actions

# [ ... ]

jobs:
  build:
    runs-on: ubuntu-latest

    container:
      image: gcr.io/positive-affirmations-313800/droid-deploy-env:latest
      credentials:
        username: _json_key
        password: ${{ secrets.GCR_JSON_KEY }}

    steps:
      - uses: actions/checkout@v2
        working-directory: $HOME

      - uses: actions/setup-java@v1
        working-directory: $HOME
        with:
          java-version: '12.x'

      - uses: subosito/flutter-action@v1
        working-directory: $HOME
        with:
          flutter-version: '2.0.5'

      # [ ... ]

发生了错误 :(

但我不断收到此错误:

此处提供完整日志

图片

标签: dockerfluttercontinuous-integrationgithub-actionsgoogle-container-registry

解决方案


我找到了问题的解决方案。

我只是在我的容器上缺少 xz-utils,所以我更新了我的 docker 映像以安装它

引用自相关的github问题here

FROM ubuntu:latest

RUN apt-get update && apt-get install -y \
  xz-utils \
  git \
  android-sdk \
  && rm -rf /var/lib/apt/lists/*

COPY Gemfile .
COPY Gemfile.lock .
COPY fastlane/ ./fastlane/

推荐阅读