1

在 Jenkins 中,我安装了 Docker 构建步骤插件。
在 Jenkins 中,创建作业并在其中执行 docker 命令选择构建映像。镜像是使用 Dockerfile 创建的。Dockerfile 是:

FROM ubuntu:latest


#OS Update
RUN apt-get update
RUN apt-get -y install git git-core unzip python-pip make wget build-essential python-dev libpcre3 libpcre3-dev libssl-dev vim nano net-tools iputils-ping supervisor curl supervisor

WORKDIR /home/wipro
#Mongo Setup
RUN curl -O http://downloads.mongodb.org/linux/mongodb-linux-x86_64-3.0.2.tgz && tar -xzvf mongodb-linux-x86_64-3.0.2.tgz && cd mongodb-linux-x86_64-3.0.2/bin && cp * /usr/bin/
#RUN mongod --dbpath /home/azureuser/CI_service/data/ --logpath /home/azureuser/CI_service/log.txt --logappend --noprealloc --smallfiles --port 27017 --fork

#Node Setup
#RUN curl -O https://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gz && tar -xzvf node-v0.12.7.tar.gz && cd node-v0.12.7
#RUN cd /opt/node-v0.12.7 && ./configure && make && make install
#RUN cp /usr/local/bin/node /usr/bin/ && cp /usr/local/bin/npm /usr/bin/
RUN wget https://nodejs.org/dist/v0.12.7/node-v0.12.7-linux-x64.tar.gz
RUN cd /usr/local && sudo tar --strip-components 1 -xzf /home/wipro/node-v0.12.7-linux-x64.tar.gz
RUN npm install forever -g

#CI SERVICE
ADD prod /home//
ADD servicestart.sh /home/
RUN chmod +x /home/servicestart.sh
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
CMD ["sh", "/home/servicestart.sh"]

EXPOSE 80
EXPOSE 27017

然后我尝试创建容器并创建容器。
当我尝试启动容器时,容器没有运行。
当我用命令检查时:

docker ps -a

,它只显示状态created
它不在运行或Exited状态。

的输出docker ps -a是:

码头工人ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
8ac762c4dc84        d85c2d90be53        "sh /home/servi"   15 hours ago        Created                                 hungry_liskov
7d8864940515        d85c2d90be53        "sh /home/servi"   16 hours ago        Created                                 ciservice

如何使用詹金斯启动容器?

4

1 回答 1

0

这取决于您的容器主命令 ( ENTRPOINT+ CMD)

创建状态(对于非数据卷容器)意味着主命令无法执行。
试试看docker logs <container_id>是否记录了任何错误信息。

CMD ["sh", "/home/servicestart.sh"]应该:

CMD ["/home/servicestart.sh"]

(Ubuntu的默认ENTRYPOINT应该是["sh", "-c"],所以不需要重复"sh"

于 2016-02-10T05:12:37.820 回答