Мой Dockerfile выглядит примерно так.
FROM mhart/alpine-node:8.11.3
RUN mkdir -p /app
COPY ./ /app
WORKDIR /app/build
RUN yarn global add serve
CMD ["serve", "-l", "3000"]
EXPOSE 3000
А потом JenkinsFile выглядит примерно так.
node {
try {
stage('Checkout source code') {
checkout scm
}
stage('Install packages') {
sh("docker run --rm -v `pwd`:/app -w /app node yarn install")
//sh("sudo chown -R jenkins: ./node_modules")
}
stage('Set the enviroment variables') {
sh("echo set-env-variables")
}
stage('Build static assets') {
sh("docker run --rm -v `pwd`:/app -w /app node yarn build")
}
}}
Когда я запускаю его на Jenkins, вывод консоли показывает error Couldn't find a package.json file in "/app"
а также выдает ошибку sudo not found
, хотя я добавил jenkins ALL=(ALL) NOPASSWD: ALL
в файл / etc / sudoers.
Я выполняю команды, перечисленные в моем Jenkinsfile, на моем терминале, и все они работают нормально, но когда язапустить их на Дженкинс, они не работают.