为了限制对某些项目的访问,我添加了带有traefik标签的简单IP保护:
services:
nginx:
labels:
- traefik.http.middlewares.${CI_PROJECT_PATH_SLUG}-${CI_ENVIRONMENT_SLUG}.ipwhitelist.sourcerange=1.2.3.4/32
- traefik.http.routers.${CI_PROJECT_PATH_SLUG}-${CI_ENVIRONMENT_SLUG}.middlewares=${CI_PROJECT_PATH_SLUG}-${CI_ENVIRONMENT_SLUG}@docker
请注意,变量是由GitLab CI在部署时提供的,但这不是重点。
在每个项目的docker-compose.yml
文件上定义了这些标签,并用git版本化。
这样,如果将此配置应用于42个项目,并且以后更改了IP,则我必须为每个项目将其修改42次。
所以我想找到一种方法将动态1.2.3.4/32
值放在一个地方。
我正在考虑使用自定义docker标签进行以下操作:
services:
nginx:
labels:
# This label would activate some configuration such as IP protection middleware
- traefik.internal-restriction
这有可能吗?如果没有,如何正确管理该用例?