공통 코드를 유지하고 내부 리포지토리에 게시하는 npm 패키지가 있습니다. 패키지 이름은 docker-images
입니다. 그 내부에서 나는 그와 쉘 스크립트가 나는이 스크립트를 호출하는 스크립트가 다른 NPM 패키지에서 건물docker 빌드로 소스 코드를 복사 할 수 없습니다.
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}
을 수행해야이 패키지
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
또한 다음과 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
는 는
또한 경로/홈/젠킨스 - 슬레이브/작업/dockerbuild이는 dockerfile을 찾을 수 있습니다하지만 난 '돈 때문에 존재 분명히
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
내 쉘 스크립트를 호출하는 명령을 인쇄 는 SRC에게