代码之家  ›  专栏  ›  技术社区  ›  Chris A

生成中未拾取环境变量

  •  0
  • Chris A  · 技术社区  · 2 年前

    Dockerfile文件

    FROM node:lts-alpine as build-stage
    ENV VUE_APP_BACKEND_SERVER=${_VUE_APP_BACKEND_SERVER}
    RUN echo "server env is:"
    RUN echo $VUE_APP_BACKEND_SERVER
    WORKDIR /app
    COPY package*.json ./
    RUN npm install
    COPY . .
    RUN npm run gcpbuild
    

    Cloudbuild配置

    steps:
      - name: gcr.io/cloud-builders/docker
        args:
          - build
          - '--no-cache'
          - '-t'
          - '$_GCR_HOSTNAME/$PROJECT_ID/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA'
          - front
          - '-f'
          - front/Dockerfile
          - '--build-arg=ENV=$_VUE_APP_BACKEND_SERVER'
        id: Build
    ...
    ...
    options:
      substitutionOption: ALLOW_LOOSE
    substitutions:
      _VUE_APP_BACKEND_SERVER: 'https://backend.url'
    

    我还在“高级”部分的替换中设置了变量。然而,在构建过程中 echo 打印一个空白,而该变量在应用程序中不可用。

    1 回复  |  直到 2 年前
        1
  •  1
  •   igobr    2 年前

    您需要的是:

    FROM node:lts-alpine as build-stage
    ARG VUE_APP_BACKEND_SERVER
    ...
    

    此外,修复云构建配置中的构建参数行:

    - '--build-arg',
    - 'VUE_APP_BACKEND_SERVER=${_VUE_APP_BACKEND_SERVER}'
    

    查看 docs .

    Read more 关于Dockerfile中的ARG指令。

    推荐文章