【发布时间】:2020-08-20 15:26:47
【问题描述】:
我有一个 Dockerfile,其中包含以下使用 exec 的 ENTRYPOINT 命令。
FROM node:10-alpine
RUN apk add ca-certificates
RUN npm install -g firebase-tools
COPY --from=gcr.io/berglas/berglas:latest /bin/berglas /bin/berglas
ENV FIREBASE_TOKEN ""
ENTRYPOINT exec /bin/berglas exec -- /usr/local/bin/firebase
在cloudbuild.yaml 我有以下步骤,但在args: [] 中传递的参数没有得到尊重。
- name: firebase-tools
dir: '/workspace/functions'
args: ['deploy', '-P', '${_FIREBASE_PROJECT_NAME}']
env:
- 'FIREBASE_TOKEN=sm://$PROJECT_ID/firebase-ci-token'
因为exec 更改了shell,所以它忽略了原来的args: []。有没有办法将这些args: [] 应用于/usr/local/bin/firebase deploy 命令?
【问题讨论】:
-
您能否详细说明您想要实现的目标?
-
当然。
berglas正在从 Google 机密管理器中提取机密,并在容器环境中以FIREBASE_TOKEN的形式提供。在berglas完成它的工作之后,我想调用/usr/local/bin/firebase并使用从cloudbuild.yaml 文件[ 'deploy', '-P', '${_FIREBASE_PROJECT_NAME} ]传入的动态参数。 args 似乎只是被容器忽略了。我假设这是因为 exec 破坏了 shell。
标签: docker exec google-cloud-build