在Docker镜像中运行命令时,Jenkins出现未知/通用错误



我正在尝试从一个运行在Docker映像中的Jenkins文件执行以下命令:sh "cd ./src/common && npm install"

Jenkins日志显示如下:

18:56:46  + cd ./src/common
18:56:46  + npm install
18:56:46  
[Pipeline] }
18:56:46  $ docker stop --time=1 
02b60e1ac63b72e7a57356249d7ba48b720bf6f0c7df2addd20b7a2d45201ef5
18:56:48  $ docker rm -f 
02b60e1ac63b72e7a57356249d7ba48b720bf6f0c7df2addd20b7a2d45201ef5
[Pipeline] // withDockerContainer
[Pipeline] }
[Pipeline] // stage
[Pipeline] echo
18:56:48  Exception: hudson.AbortException: script returned exit code 243
[Pipeline] error
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // timestamps
[Pipeline] End of Pipeline
ERROR: hudson.AbortException: script returned exit code 243

当我在不使用docker镜像的情况下运行它时,它运行得很好。但是,我现在需要使用Docker镜像。

以下是我的Docker镜像文件:

FROM node:16 
ENV PROJECT_DIR /usr/local/bin/src/oppt
WORKDIR ${PROJECT_DIR}
RUN apt-get update -y
RUN apt-get install zip -y 
RUN apt-get install curl -y 
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
RUN unzip awscliv2.zip
RUN ./aws/install
COPY . ${PROJECT_DIR}/

我已经试过了:sh(script: """ #!/bin/bash pushd ./src/common && npm install && popd""")

但它仍然不工作。

错误是在npm install不知何故,但它没有抛出它或被登录到jenkins。

我已经完成了./src/common目录的ls,预期的文件在那里,package.jsonpackage-lock.json

npm install应该创建一个node-modules文件夹,并将依赖项放在其中,但这并没有发生。如果它是IO配股发行,那么它应该抛出这样的错误,但它不是。或者,即使包文件是坏的(实际上并不是),它也应该抛出一些错误。

感谢任何帮助!

谢谢。

答案是:

sh "HOME=${WORKSPACE} && cd ${WORKSPACE}/src/common && some command"

必须先设置Docker的工作空间位置,然后到该位置执行你想要的命令。

最新更新