不确定这是否可行。但我想要的是改变dockerfile中的这行代码
RUN $(npm bin)/ng build --prod --env=prod
到
RUN $(npm bin)/ng build --prod --env=test
或者更好的我如何在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
但仅当git分支名称为test时。我正在使用gitlab来构建图像。
我需要这个以便以角度更改api url环境变量。 这可能还是有更好的方法吗?
答案 0 :(得分:2)
Dockerfile支持build arguments和environment variables。因此可以指定要使用的分支,然后根据分支决定命令。例如,要传递构建args,请使用docker build - build-arg =。然后,您可以根据决定要使用的env的git_branch变量设置变量。
FROM busybox
ARG git_branch
RUN echo “Building $git_branch”
答案 1 :(得分:2)
在docker 1.9中,沿途的一个步骤是使用构建参数来使用构建参数区分prod和dev环境:
docker build --build-arg local_config=test
在docker文件中:
RUN $(npm bin)/ng build --prod --env=$local_config