Windmill 搭建个人任务中心
Windmill https://www.windmill.dev/ 是个把脚本做成 workflow 的平台,源代码开源,和现在的低代码、微搭的概念有点像。又像 AWS 函数流,创建一个脚本可以通过各种触发器、定时器、webhook 去触发执行。以解决下面几种需求。
- 有一些定时任务脚本。你想方便地观察、修改它们,想在脚本之间做一些复杂触发的逻辑
- 它的 APP 功能可以让你做出复杂的报表、看板,算是一个低代码微搭平台
windmill 提供两种使用方案,一种是他们自己的云,免费额度每月 1000 次执行。另一种是开源的 self-host 通过 docker 部署,我在自己的 1u2g 的服务器上部署了,占用不高,空闲时大概 150MB 内存。一个 Python 进程 50MB
官方推荐 typescript 语言,但也支持 Python bash,Python 依赖都是它自动解决的,类似 Pipenv 工具,每改一次脚本代码会重新生成一次虚拟环境。所以很有比较配置一个国内 Pip 镜像。修改 docker-compose 文件,为 worker 容器增加 pip 的环境变量
windmill_worker:
...
environment:
...
- PIP_INDEX_URL=https://mirrors.cloud.tencent.com/pypi/simple
参考 https://docs.windmill.dev/docs/advanced/imports#private-pypi-repository
怎么给在运行的容器添加环境变量?
没法添加。
这里我想给已经运行的 docker 容器增加环境变量,但发现是办不到的。只能改了以后重新用 docker compose 命令重拉容器。如果一个 compose.yml 文件定义了很多个容器,这里我只修改了windmill_walker,那我可以只用下面的命令,拉起指定的容器 windmill_worker。
docker compose up -d windmill_worker