在 Jenkins 的 Docker Swarm 节点内执行脚本
Execute script inside Docker Swarm node from Jenkins
我有一个部署到 Docker Swarm 的 Django 应用程序。 (已复制,运行 在多个节点上)
该应用程序包含一些必须定期执行的 shell 脚本 do_stuff.sh
,最终会在节点上执行自定义命令 python manage.py do_django_stuff
。
我想要的是从 Jenkins 调度和触发脚本的执行。 (从那里可以方便地跟踪 results/see 日志输出以进行故障排除等)
该应用程序已修复 FQDN(例如 my_app.my_server.com
),但我正在努力解决如何从 Jenkins 指向特定容器以在那里执行脚本的问题。
我怎样才能做到这一点?
谢谢!
找到解决方案。要完成上述任务 - 我必须做两件事:
- 在 Jenkins 作业上放置标签,目标是 Docker Swarm 集群(选择其中一台机器)
- 执行脚本
docker exec $(docker ps -q -f name=name_of_my_application) ./do_stuff.sh
因此,当任务在 Docker Swarm 中执行时,我实现了该行为,但具有与常规部署相同的输出
我有一个部署到 Docker Swarm 的 Django 应用程序。 (已复制,运行 在多个节点上)
该应用程序包含一些必须定期执行的 shell 脚本 do_stuff.sh
,最终会在节点上执行自定义命令 python manage.py do_django_stuff
。
我想要的是从 Jenkins 调度和触发脚本的执行。 (从那里可以方便地跟踪 results/see 日志输出以进行故障排除等)
该应用程序已修复 FQDN(例如 my_app.my_server.com
),但我正在努力解决如何从 Jenkins 指向特定容器以在那里执行脚本的问题。
我怎样才能做到这一点?
谢谢!
找到解决方案。要完成上述任务 - 我必须做两件事:
- 在 Jenkins 作业上放置标签,目标是 Docker Swarm 集群(选择其中一台机器)
- 执行脚本
docker exec $(docker ps -q -f name=name_of_my_application) ./do_stuff.sh
因此,当任务在 Docker Swarm 中执行时,我实现了该行为,但具有与常规部署相同的输出