Dockerfile 复制特定分支

Dockerfile 复制特定分支

我的 Dockerfile 构建了一个复制当前工作目录内容的镜像,但始终使用主分支。我想在 COPY 或 ADD 操作期间指定一个分支。

FROM node:10.18.0-stretch
EXPOSE 81 8080
RUN apt-get update; \
    apt-get install -y \
    ssh \
    git-core \

COPY ./ /var/www/app_source
WORKDIR /var/www/app_source

RUN npm i npm@latest \
  && npm install \
  && npm install pm2@latest -g

CMD [ "pm2-runtime", "app.js" ]

上面的代码总是使用 master 分支构建镜像,而我想指定一个 staging 分支。一个不太优雅的解决方案是 git clone -b staginghttps://github.com/example/app_source.git并从该目录进行构建,因为那里没有其他分支,所以它可以工作。

但是,我想继续在当前主分支上进行开发,但使用本地工作站上的任何分支来构建图像。

任何想法或回应都将受到赞赏。

答案1

如果我理解正确的话,你已经复制了图片中的 git 目录。如果是这样,你应该从正确的git 签出命令将适当的分支放到前面。

git checkout specificbranch

相关内容