我有一个docker-compose.yml文件,该文件定义了我需要的所有服务。重要的部分如下:
services:
backend-api:
build: .
jenkins:
build: ./jenkins
volumes:
- jenkins_data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
backend-api是使用gradle构建的简单Java应用程序,而jenkins服务是安装了docker的标准jenkins映像。
backend-api的Dockerfile:
FROM gradle:jdk8 as builder
COPY --chown=gradle:gradle . /home/gradle/src
WORKDIR /home/gradle/src
RUN gradle build
FROM openjdk:8-jre-slim
EXPOSE 8080
COPY --from=builder /home/gradle/src/backend/build/distributions/backend.tar /app/
WORKDIR /app
RUN tar -xvf backend.tar
WORKDIR /app/backend
CMD bin/backend
我想从backend-api
容器重建并重新启动jenkins
服务。我了解了很多有关他的内容,并查看了CloudBees
的{{1}}码头工人插件,但无法弄清楚如何从jenkins容器内部重新启动并在主机上重建容器。
是否有可能以某种方式实现这一目标,或者我对这一问题的整体态度是错误的?
答案 0 :(得分:1)
您需要在jenkins docker容器内正确配置docker客户端。这是Dockerfile或整个post
之后,您可以使用 -H 泊坞参数执行远程泊坞窗中的任何命令。敌人的例子我用它来查看另一台机器上的远程日志:
docker -H 10.10.10.66:2375 logs --tail 500 my-app
注意:您必须先启用docker rest api!
使用C.I和docker的常见,简单,手动和行之有效的方法是:
注意: