Google Cloud Builder - Angular CLI Firebase CLI

Google Cloud Builder - Angular CLI Firebase CLI

尝试查看我是否需要使用两个单独的图像来构建 Angular 应用程序,使用 Angular CLI 并使用 Firebase CLI 进行部署。而且我什至应该在每次构建时构建图像吗?如果是这样,我还应该 运行 清除它们(如何)?

当前 cloudbuild.yaml

steps:
- name: 'gcr.io/cloud-builders/docker'
  args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/firebase', '.' ]
  dir: 'docker/firebase'
- name: 'gcr.io/cloud-builders/docker'
  args: ["push", "gcr.io/$PROJECT_ID/firebase"]
- name: 'gcr.io/cloud-builders/docker'
  args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/ng', '.' ]
  dir: 'docker/ng'
- name: 'gcr.io/cloud-builders/docker'
  args: ["push", "gcr.io/$PROJECT_ID/ng"]
- name: 'gcr.io/cloud-builders/npm'
  args: ['install']
- name: 'gcr.io/cloud-builders/npm'
  args: ['install','--prefix','functions']
- name: 'gcr.io/$PROJECT_ID/ng'
  args: ['build','${_NG_ENV}',"${_NG_TARGET}"]
- name: 'gcr.io/$PROJECT_ID/firebase'
  args: [ 'deploy', '-P', '${_FIREBASE_ENV}', '--token', '${_FIREBASE_TOKEN}']

Firebase Docker

# use latest Node LTS (Boron)
FROM node:carbon
# install Firebase CLI
RUN npm install -g firebase-tools

ENTRYPOINT ["/usr/local/bin/firebase"]

Angular Docker

# use latest Node LTS 
FROM node:carbon
# install Angular CLI
RUN npm install -g @angular/cli

ENTRYPOINT ["/usr/local/bin/ng"]

我的误解是关于 entrypoints

我在安装 angular 时也遇到了错误并找到了修复,所以这里是带有两个 CLI 的新 dockerfile。

Docker 文件

# use latest Node LTS (Boron)
FROM node:carbon

# install Angular CLI
RUN npm install -g @angular/cli --unsafe

# install Firebase CLI
RUN npm install -g firebase-tools

cloudbuild.yaml

steps:
- name: 'gcr.io/cloud-builders/docker'
  args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/firebase', '.' ]
- name: 'gcr.io/cloud-builders/docker'
  args: ["push", "gcr.io/$PROJECT_ID/firebase"]
- name: 'gcr.io/cloud-builders/npm'
  args: ['install']
- name: 'gcr.io/cloud-builders/npm'
  args: ['install','--prefix','functions']
- name: 'gcr.io/$PROJECT_ID/firebase'
  args: ['/usr/local/bin/ng','build','${_NG_ENV}',"${_NG_TARGET}"]
- name: 'gcr.io/$PROJECT_ID/firebase'
  args: [ '/usr/local/bin/firebase','deploy', '-P', '${_FIREBASE_ENV}', '--token', '${_FIREBASE_TOKEN}']