gpt4 book ai didi

docker - 使用代理docker从Jenkins管道部署/运行应用

转载 作者:行者123 更新时间:2023-12-02 19:24:05 33 4
gpt4 key购买 nike

我试图建立一个示例管道(使用声明式)来构建/测试/并部署一个示例(节点)应用程序。

我正在使用agent docker在容器中运行作业...配置和测试阶段运行良好:

pipeline {
agent {
docker { image 'node:latest' }
}
stages {
stage('config') {
steps {
sh 'npm install'
}
}
stage('run test') {
steps {
sh 'npm test'
}
}

}

问题是如何添加 deployment阶段本质上是构建docker镜像并像这样运行它:
docker build -t myapp .
docker run -d myapp

(让我们假设这是我想要部署/运行应用程序的方式……并拥有一个Dockerfile)

问题是如何部署示例应用程序(使用docker命令)...在此处添加 deploy阶段将不起作用,因为我使用的是 docker agent(我猜它在docker内部的docker中运行,这听起来是错误的!)

我是否应该在管道成功后开始一项新工作,该工作使用 agent any运行部署命令?还是有更好的方法来运行该应用程序?

最佳答案

如果正确的话,Docker内部的Docker并没有错!
您可以在容器节点上安装父套接字:

/var/run/docker.sock:/var/run/docker.sock

在Jenkins中,转到 Manage-> Configure System->滚动到 Cloud->单击 Docker Agent templates-> Container settings...

您将看到如下图所示的内容:

enter image description here

将这样的图像用于代理:
FROM jenkins/jnlp-slave
USER root
RUN apt-get update
RUN apt-get -y install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable"
RUN apt-get update
RUN apt-get -y install \
docker-ce \
docker-ce-cli \
containerd.io

并在作业中执行docker使用:
withDockerContainer(image: IMAGE_NAME)
{
...
}

有用的链接:

https://adamcod.es/2017/08/19/docker-patterns-socket-mount.html
https://docs.docker.com/v17.09/engine/reference/commandline/dockerd/#examples

关于docker - 使用代理docker从Jenkins管道部署/运行应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57601687/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com