我的 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