【问题标题】:fastlane - error at google cloud build: "OCI runtime create failed: container_linux.go:345"fastlane - 谷歌云构建时出错:“OCI 运行时创建失败:container_linux.go:345”
【发布时间】:2020-01-03 05:45:03
【问题描述】:

我正在使用 fastlane 存储在 google 容器注册表中的容器使用 Google Cloud Build 将 APK 上传到 google play 商店。

APK已成功创建。但是,在处理最后一步(fastlane)时,它会遇到错误:

Step #2: 487ea6dabc0c: Pull complete
Step #2: a7ae4fee33c9: Pull complete
Step #2: Digest: sha256:2e31d5ae64984a598856f1138c6be0577c83c247226c473bb5ad302f86267545
Step #2: Status: Downloaded newer image for gcr.io/myapp789-app/fastlane:latest
Step #2: gcr.io/myapp789-app/fastlane:latest
Step #2: docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"supply\": executable file not found in $PATH": unknown.
Step #2: time="2019-08-29T23:22:55Z" level=error msg="error waiting for container: context canceled"
Finished Step #2
ERROR
ERROR: build step 2 "gcr.io/myapp789-app/fastlane" failed: exit status 127

注意:

1) Docker 源文件取自 https://hub.docker.com/r/fastlanetools/fastlane,然后我构建了自己的镜像。

2) 使用 Debian GNU/Linux 9 (stretch)

Google Cloud VM 上构建 Docker 映像

fastlane 的 Docker 源文件:

# Final image #
###############
FROM circleci/ruby:latest
MAINTAINER milch

ENV PATH $PATH:/usr/local/itms/bin

# Java versions to be installed
ENV JAVA_VERSION 8u131
ENV JAVA_DEBIAN_VERSION 8u131-b11-1~bpo8+1
ENV CA_CERTIFICATES_JAVA_VERSION 20161107~bpo8+1

# Needed for fastlane to work
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8

# Required for iTMSTransporter to find Java
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/jre

USER root

# iTMSTransporter needs java installed
# We also have to install make to install xar
# And finally shellcheck
RUN echo 'deb http://archive.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/jessie-
backports.list \
        && apt-get -o Acquire::Check-Valid-Until=false update \
        && apt-get install --yes \
                make \
                shellcheck \
        && apt-get clean \
        && rm -rf /var/lib/apt/lists/*

USER circleci

COPY --from=xar_builder /tmp/xar /tmp/xar

RUN cd /tmp/xar \
        && sudo make install \
        && sudo rm -rf /tmp/*

CloudBuild.yaml:

- name: 'gcr.io/$PROJECT_ID/fastlane'
  args: ['supply', '--package_name','${_ANDROID_PACKAGE_NAME}', '--track', '${_ANDROID_RELEASE_CHANNEL}', '--json_key_data', '${_GOOGLE_PLAY_UPLOAD_KEY_JSON}', '--apk', '/workspace/${_REPO_NAME}/build/app/outputs/bundle/release/app.aab']
timeout: 1200s

有什么办法解决这个问题吗?

【问题讨论】:

  • 您能否提供您自己的任何源代码(Dockerfile 或其他工件)来帮助重现该问题?似乎您收到了一条非常明确的错误消息,是(Linux)supply 二进制文件在标准 $PATH 中的某处吗?
  • @DavidMaze 请查看我更新的问题,谢谢
  • @DavidMaze 我正在使用 google VM (debian stretch) 创建 docker 映像,然后将其上传到 Google Container Registry
  • is a (Linux) supply binary somewhere in the standard $PATH? - 对不起,你是什么意思?

标签: docker google-cloud-platform fastlane google-container-registry google-cloud-build


【解决方案1】:

我通过使用来自 Google Cloud Official 的 docker 源而不是 hub.docker.com 上的 fastlane 构建 docker 映像来解决这个问题(自 5 个月前以来它从未更新过)

【讨论】:

    猜你喜欢
    • 2020-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多