Dockerfile
FROM traefik:camembert-alpine COPY traefik.toml /etc/traefik/traefik.toml ENTRYPOINT ["traefik"]
traefik.toml
logLevel = "INFO" [web] address = ":8080" [entryPoints] [entryPoints.http] address = ":80" [file] [backends] [backends.backend1] [backends.backend1.loadbalancer] method = "wrr" sticky = true [backends.backend1.servers.server1] url = "http://front-end:8079" [frontends] [frontends.frontend1] backend = "backend1" entrypoints = ["http"]
What is toml?
2013년 2월 Github의 창업자이자 CEO인 Tom Preston-Werner가 TOML이라는 파일 형식을 공개했다(정적 블로그 사이트 생성기인 Jekyll로도 알려져 있다). 개인적인 느낌으로는 다른 대안보다는 일단 텍스트 자체의 생김새에서 출발해서 정리해 나간 느낌이다.
2월 23일자로 repo가 만들어졌으니 정말 최근인데, 처음에는 이름이 Tom’s Own Markup Language이더니 지금은 Tom’s Obvious, Minimal Language의 약자이다. 이 양반 회사 차릴 만한 게 TomDoc이라고 루비용으로 RubyDoc 비슷한 걸 만들면서도 자기 이름을 땄다. Github 사람이 만들다 보니 벌써 Github에서 문법 강조가 지원된다. 거기다 처음 봤을 때는 며칠 전에 봤을 때 파서가 루비, 파이선 정도이더니 며칠 새 수십 개가 됐다. 간단히 특징을 정리하면 다음과 같다.
- 윈도 INI 파일과 비슷하다: INI 파일 규격에는 없지만 흔히 사용하던
[a.b.c]
같은 계층화된 섹션 같은 아이디어를 명시적으로 들여왔다. - 파싱을 하면 일관되게 맵으로 대응된다.
- 리스트 내 리스트는 중첩할 수 있지만 리스트 내에 맵을 중첩할 수 없다: 이 때문에 XML에서 흔히 하던 몇 가지를 표현 하는 게 조금 성가시다. 예를 들면 Maven에서 dependency를 여러 개 지정한다든지 할 때가 그렇다.
- 들여쓰기는 의미는 없지만 원하면 들여쓰기를 해도 된다.
- 기타 데이터 형식은 매우 단순하다: 일례로 날자도 딱 한 형태만 지원한다.