ОШИБКА: (gcloud.app.deploy) Вы должны предоставить свой собственный Dockerfile при использовании пользовательской среды выполнения - PullRequest
1 голос
/ 17 февраля 2020

Я пытаюсь запланировать работу R в Google Cloud с помощью App Engine. Я следую за статьей

https://code.markedmondson.me/4-ways-schedule-r-scripts-on-google-cloud-platform/

Однако, когда я пытаюсь развернуть приложение, используя gcloud app deploy --project shiny-demo, я получаю следующую ошибку

Enabling service [appengineflex.googleapis.com] on project [shiny-demo]...
Waiting for async operation operations/acf.33c5e6da-6f9e-4e66-b7d3-f0611eddc0ce to complete...
Operation finished successfully. The following command can describe the Operation details:
 gcloud services operations describe operations/tmo-acf.33c5e6da-6f9e-4e66-b7d3-f0611eddc0ce
Beginning deployment of service [default]...
ERROR: (gcloud.app.deploy) You must provide your own Dockerfile when using a custom runtime. Otherwise provide a "runtime" field with one of the supported runtimes.

У меня есть Dockerfile в той же папке, что и мой файл yaml, однако каким-то образом он не распознает Dockerfile. Ниже мой файл yaml:

# app.yaml file
runtime: custom
env: flex

manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

env_variables:
  GCS_AUTH_FILE: authkey.json

Мой Dockerfile:

# DOCKER
FROM trestletech/plumber
LABEL maintainer="mark"
RUN export DEBIAN_FRONTEND=noninteractive; apt-get -y update \
 && apt-get install -y libcairo2-dev \
    libcurl4-openssl-dev \
    libgmp-dev \
    libpng-dev \
    libssl-dev \
    libxml2-dev \
    make \
    pandoc \
    pandoc-citeproc \
    zlib1g-dev
RUN ["install2.r", "-r 'https://cloud.r-project.org'", "readr", "googleCloudStorageR", "bigrquery", "Rcpp", "digest", "crayon", "withr", "mime", "R6", "jsonlite", "xtable", "magrittr", "httr", "curl", "testthat", "devtools", "hms", "shiny", "httpuv", "memoise", "htmltools", "openssl", "tibble", "remotes"]
RUN ["installGithub.r", "MarkEdmondson1234/googleAuthR@7917351", "hadley/rlang@ff87439"]
WORKDIR /payload/
COPY [".", "./"]

EXPOSE 8080
ENTRYPOINT ["R", "-e", "pr <- plumber::plumb(commandArgs()[4]); pr$run(host='0.0.0.0', port=8080)"]
CMD ["myscript.R"]

Я немного новичок в Docker.

Добавление изображения для структуры папок:

enter image description here

1 Ответ

1 голос
/ 17 февраля 2020

Ваше имя файла Dockerfile Dockerfile (первая буква в верхнем регистре)?

Файл Docker должен быть создан без расширения. Чтобы сделать это в Windows, создайте файл с выбранным редактором, затем сохраните его с пометкой «Dockerfile» (включая кавычки).

Является ли ваш Dockefile по правильному пути на том же уровне, что и app.yaml?

...