从 Jenkins 在 Docker Swarm 节点内执行脚本

时间:2021-05-26 11:43:09

标签: docker jenkins docker-swarm

我有一个部署到 Docker Swarm 的 Django 应用程序。 (已复制,在多个节点上运行)

应用程序包含一些必须定期执行的 shell 脚本 do_stuff.sh,最终会在节点上执行自定义命令 python manage.py do_django_stuff

我想要的是从 Jenkins 调度和触发脚本的执行。 (从那里可以方便地跟踪结果/查看日志输出以进行故障排除等)

该应用程序已修复 FQDN(例如 my_app.my_server.com),但我正在努力解决如何从 Jenkins 指向特定容器以在那里执行脚本。

我怎样才能做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:0)

找到了解决方案。要完成上述任务 - 我必须做两件事:

  • 为 Jenkins 作业贴上标签,目标是构建到 Docker Swarm 集群(选择其中一台机器)
  • docker exec $(docker ps -q -f name=name_of_my_application) ./do_stuff.sh 的身份执行脚本

所以当任务在 Docker Swarm 中执行时,我实现了行为,但输出与常规部署相同