我有一個npm包,我們保持我們的通用代碼,並將其發佈到內部存儲庫。包名是docker-images
。裏面,我有以下無法複製源代碼與碼頭構建
FROM <Our internal base image>
# Setting src variable.
ARG src
# Set working directory
WORKDIR /home/default
USER root
# Copy the src code
COPY $src /home/default
# Install all the dependencies
RUN npm install
# Change permissions to default user and ensure we enter at the right spot
RUN chown -R default:default /home/default
USER default
而且這個包我有一個shell腳本做建築
OPTIND=1 # Reset getopts in case it was changed in a previous run
while getopts "h::f::s::" opt; do
case "$opt" in
h)
exit 1
;;
f)
dockerfile=$OPTARG
;;
s)
src=$OPTARG
;;
*)
exit 1
;;
esac
done
docker build --pull=true --build-arg "src=${src}" --tag="latest" --file=${dockerfile} ${src}
從另一個NPM包我有一個腳本,調用該腳本的dockerfile構建它該腳本確實
npm install docker-images
PKG_ROOT=$(cd "$(dirname "$BASH_SOURCE")" && cd ../ && pwd)
./node_modules/docker-images/scripts/publish.sh -f "$PKG_ROOT/node_modules/docker-images/dockerfiles/dockerfile" -s "$PKG_ROOT"
但是我們詹金斯建立當矩形框它給我的錯誤
Step 3 : ARG src
---> Using cache
---> 09e6987081e7
Step 4 : WORKDIR /home/default
---> Using cache
---> d4f1edf337ca
Step 5 : USER root
---> Using cache
---> f5e52439f60f
Step 6 : COPY $src /home/default
lstat home/jenkins-slave/workspace/dockerbuild: no such file or directory
我也打印出來,我的shell腳本調用命令,它是
docker build --pull=true --build-arg src=/home/jenkins-slave/workspace/dockerbuild --file=/home/jenkins-slave/workspace/dockerbuild/node_modules/docker-images/dockerfiles/dockerfile /home/jenkins-slave/workspace/dockerbuild
顯然,路徑爲/ home /詹金斯從站/工作區/ dockerbuild存在,因爲它可以找到dockerfile但我不」知道爲什麼它不會複製SRC