我正在尝试使用Jenkins中的节点从属容器在其上运行npm指令。因此,我正在创建一个Dockerfile以使用ssh和nodejs获得有效的映像。执行程序运行良好,但是当我使用npm时,它说它不知道该命令。
(在构建dockerfile之后)我执行docker exec -it af5451297d85 bash,然后在容器内部,我尝试执行npm --v(例如),也会发生相同的问题。
# This Dockerfile is used to build an image containing an node jenkins slave
FROM node:9.0
MAINTAINER Estefania Castro <estefania.castro@luceit.es>
# Upgrade and Install packages
RUN apt-get update && apt-get -y upgrade && apt-get install -y git openssh-server
# Install NGINX to test.
RUN apt-get install nginx -y
# Prepare container for ssh
RUN mkdir /var/run/sshd && adduser --quiet jenkins && echo "jenkins:jenkins" | chpasswd
RUN npm install
ENV CI=true
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
我想运行npm指令,例如npm install,npm publish等,以便在jenkinsfile中管理我的项目。有人可以帮忙吗?
谢谢
答案 0 :(得分:0)
我已经解决了这个问题(哈哈两周后)。
FROM jenkins/ssh-slave
# Install selected extensions and other stuff
RUN apt-get update && apt-get -y --no-install-recommends install && apt-get clean
RUN apt-get install -y curl
# Install nodejs
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
RUN apt-get install -y nodejs && apt-get install -y nginx