Dockerfile 用于创建一个图像以在 jenkins 中用作容器从站

Posted

技术标签:

【中文标题】Dockerfile 用于创建一个图像以在 jenkins 中用作容器从站【英文标题】:Dockerfile to create an image to be used as an container slave in jenkins 【发布时间】:2020-01-07 23:58:00 【问题描述】:

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

谢谢

【问题讨论】:

你试过设置npm命令的完整路径吗? 【参考方案1】:

我已经解决了这个问题(两周后哈哈)。

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   

【讨论】:

以上是关于Dockerfile 用于创建一个图像以在 jenkins 中用作容器从站的主要内容,如果未能解决你的问题,请参考以下文章

如何设计布局以在注册期间获取图像作为输入?

如何创建 Haar Cascade(.xml 文件)以在 OpenCV 中使用?

从 JSON 写入/读取图像以在 Xcode 中使用

如何在 Picasso 上启用 TLS v 1.2 以在 Kotlin 中使用 https 加载图像

如何显示图像 docker 的 dockerfile

创建一个 kivy 应用程序以在一个屏幕上接收用户的输入并在另一个屏幕上显示这些图像