Dockerfile创建映像以用作jenkins中的容器从属

时间:2019-09-05 06:17:33

标签: docker jenkins-pipeline dockerfile jenkins-cli jenkins-slave

我正在尝试使用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中管理我的项目。有人可以帮忙吗?

谢谢

1 个答案:

答案 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