可以在 dockerfile 中获取 git 分支名称吗?

Ray*_*per 6 docker dockerfile angular

不确定这是否可能。但我想要的是更改 dockerfile 中的这行代码

RUN $(npm bin)/ng build --prod --env=prod
Run Code Online (Sandbox Code Playgroud)

RUN $(npm bin)/ng build --prod --env=test
Run Code Online (Sandbox Code Playgroud)

或者更好的是,我如何在 gitbal-ci.yml 文件中进行类似的工作:

# Production build
build:
  stage: build
  script:
    - docker build --pull -t $CONTAINER_ENV_IMAGE .
    - docker push $CONTAINER_ENV_IMAGE
  args:
    - env=prod
  only:
    - master

# Test build
build:
  stage: build
  script:
    - docker build --pull -t $CONTAINER_ENV_IMAGE .
    - docker push $CONTAINER_ENV_IMAGE
  args:
    - env=test
  except:
    - master
Run Code Online (Sandbox Code Playgroud)

但前提是 git 分支名称是 test。我正在使用 gitlab 来构建图像。

我需要这个来更改 Angular 中的 api url 环境变量。这是可能的还是有更好的方法?

Kar*_*Kid 3

Dockerfile支持构建参数环境变量。因此可以指定要使用哪个分支,然后根据分支决定命令。例如,要传递构建参数,请使用 docker build--build-arg =。然后,您可以根据决定要使用的 env 的 git_branch 变量设置一个变量。

\n\n
FROM busybox\nARG git_branch\nRUN echo \xe2\x80\x9cBuilding $git_branch\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n