gcloud auth在dockerfile中不起作用

坦格拉

我已经制作了一个多阶段的dockerfile来安装我的npm包,然后尝试将它们部署到gcp

问题是,当我运行部署时,它告诉我无法打开配置文件,并且我没有选择活动帐户

WARNING: Could not open the configuration file: [/root/.config/gcloud/configurations/config_default].
ERROR: (gcloud.functions.deploy) You do not currently have an active account selected.
Please run:

  $ gcloud auth login

to obtain new credentials, or if you have already logged in with a
different account:

  $ gcloud config set account ACCOUNT

to select an already authenticated account to use.

这是我的dockerfile:

FROM node:10.19.0-alpine3.9 AS build

ADD . /app
WORKDIR /app

RUN npm install

FROM google/cloud-sdk

WORKDIR /app
COPY --from=build /app /app

RUN gcloud auth activate-service-account --key-file /app/firebase-service-account.json
RUN gcloud config set project MY_PROJECT
RUN gcloud config set account [email protected]

我还写了一个bash脚本来构建和部署我的云功能

#! /bin/sh

docker build . -f deploy-functions.dockerfile -t cloud-functions-deploy

docker run cloud-functions-deploy gcloud functions deploy event-log-trigger \
--project ${GCP_PROJECT_ID} \
--entry-point eventLogBuilder \
--trigger-event providers/cloud.firestore/eventTypes/document.update \
--trigger-resource projects/${GCP_PROJECT_ID}/databases/\(default\)/documents/events/\{eventId\} \
--region=${GCP_REGION} --stage-bucket=${STAGE_BUCKET} --runtime nodejs10

在我的第一个bash脚本中,我没有该--project标志,但是需要添加它,以防它说该命令没有项目。似乎警告是正确的,config_default即使我以root用户身份运行所有文件,它也无法打开文件。

胡安基

您可以通过创建entrypoint.sh文件来克服此问题

# entrypoint.sh
# Set your env variables GCP_PROJECT_ID, STAGE_BUCKET, GCP_REGION, ...
gcloud auth activate-service-account --key-file /app/firebase-service-account.json
gcloud config set project $GCP_PROJECT_ID
# your deploy command
gcloud functions deploy event-log-trigger \
--entry-point eventLogBuilder \
--trigger-event providers/cloud.firestore/eventTypes/document.update \
--trigger-resource projects/${GCP_PROJECT_ID}/databases/\(default\)/documents/events/\{eventId\} \
--region=${GCP_REGION} --stage-bucket=${STAGE_BUCKET} --runtime nodejs10

并在Dockerfile中设置此信息

# previous stage ... 
FROM google/cloud-sdk

WORKDIR /app
COPY --from=build /app /app

RUN chmod +x /app/entrypoint.sh
ENTRYPOINT ["/bin/sh","/app/entrypoint.sh"]

看起来在图像形成后命令不会继续存在。

RUN gcloud auth activate-service-account --key-file /app/firebase-service-account.json
RUN gcloud config set project MY_PROJECT
RUN gcloud config set account [email protected]

我通过运行命令检查了这一点

docker run cloud-functions-deploy gcloud config list

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

condas`source activate virtualenv`在Dockerfile中不起作用

为什么chown在Dockerfile中不起作用?

如何获取gcloud auth激活服务帐户持续存在

在Dockerfile中运行/ usr / sbin / sshd不起作用

apt-get在Dockerfile中不起作用

“ gcloud源存储库克隆默认本地目录名称”不起作用

gcloud auth抛出PyOpenSSL不可用

NodeJS + GCloud日志记录中的内存泄漏

'gcloud app deploy'命令不起作用

COPY和ADD在Dockerfile中不起作用

在gcloud中添加名称服务器

“ gcloud auth应用程序默认登录”和“ gcloud auth登录”之间的区别

gcloud Deployment Manager模板中的python模块

在gcloud查询中过滤NULL

在Grafana中显示GCloud计费

GCloud https到外部ID和Cloud DNS不起作用

gcloud应用程序部署'--appyaml'标志似乎不起作用

gcloud Submit:使用--file参数指定Dockerfile似乎不起作用

gcloud命令在crontab -e中不起作用?

gcloud get-logs命令不起作用

如何调整gcloud中的奴才数量?(kubernetes,gcloud)

gcloud auth登录:属性解析错误

gcloud命令-gcloud预览应用模块获取日志mymodule --version = 1 \〜/ log_file.txt不起作用

如何利用 gcloud 中的并行处理?

Openssl 命令在 Dockerfile Run 中不起作用

在 php 中运行 gcloud 命令不起作用

gcloud alpha run deploy --set-secrets 标志不起作用:“应该是`latest` 或一个正整数”

BATCH 脚本在 Dockerfile 构建过程中不起作用

如何删除 gcloud auth 列表中显示的帐户?