- https://github.com/line/centraldogma
centraldogma라는 config store에 몇가지 기여를 했다
(1) 도커 멀티플랫폼 이미지 빌드
https://github.com/line/centraldogma/pull/1158
Support docker image multiplatform build by sh-cho · Pull Request #1158 · line/centraldogma
Modification: Modify :dist:docker task to build and push multi-platform docker image, using docker buildx buildx's --load option builds multi-platform images, but only saves one platform that...
github.com
amd64 이미지만 있어서, arm64 이미지도 같이 빌드하도록 수정했다
docker gradle plugin(bmuschko/gradle-docker-plugin)을 쓰고 있었는데, 여긴 buildx 지원이 안되는 것 같아서? 그냥 exec로 바꿨다. 그리고 유지보수도 안되고 있었다.
palantir의 docker gradle plugin(palantir/gradle-docker)을 써볼까 하기도 했는데, 이것도 역시 유지보수가 끝났다.
그냥 gradle task에서 뺄까 생각도 했는데.. 일단은 놔뒀다.
기존과 조금 달라진 부분은 도커 buildx로 멀티플랫폼 이미지 빌드시엔 로컬에 한 platform의 이미지만 저장돼서, push 방식으로 변경했고, 로컬에 registry(https://hub.docker.com/_/registry)를 따로 띄우고 그쪽에 이미지를 올려서 테스트했다.
0.77.0 버전부터 적용됐다
(2) 도커 이미지 최적화
https://github.com/line/centraldogma/pull/1172
Optimize docker image by sh-cho · Pull Request #1172 · line/centraldogma
Motivation: Currently docker image has all client binaries inside, also copied twice under bin/* and bin/native/*. Only single client binary file is enough. Image below is layer info inside ghcr.io...
github.com
도커 이미지 내부를 확인해보니, centraldogma의 클라이언트가 일단은 중복돼서 저장돼있었고, 거기에 OS별로 모든 클라이언트가 들어가있었다.

그런데 dogma client(line/centraldogma-go)를 확인해보니 arm64 빌드가 없었다 ㅠ

그래서 dogma client에 arm64 빌드를 추가했다. 메인테이너가 goreleaser 사용하는건 어떤지 의견을 주셔서 처음 써봤는데 되게 편리했다.
https://github.com/line/centraldogma-go/pull/67
Update release workflow, Support linux/arm64 build by sh-cho · Pull Request #67 · line/centraldogma-go
Use release workflow using GoReleaser. If semver tag is pushed, binaries is built, GitHub Release is created, and artifacts(with checksum) will be attached to the github release. example: https://...
github.com
결과적으로 이렇게 이미지마다 platform 에 맞는 클라이언트 하나만 들어간다

이미지 용량은 50mb 정도 줄었다 (-13%)

(3) 서버 상태 기능 추가
https://github.com/line/centraldogma/pull/1163
Add admin menu to update server status by sh-cho · Pull Request #1163 · line/centraldogma
Motivation Admin page to update server status #1148 Currently server executor's status can only be updated via REST api Modification Add admin menu to update server status Result Server...
github.com
api는 있는데 ui 연결이 안돼있어, ui쪽 수정을 했다
다음 계획
- jib 적용: 이건 한번 해봤는데, 이미지 크기가 막 획기적으로 줄어들지 않아서 잘 모르겠다. 그리고 이미지 내부 경로들이 싹 바뀌는데 이걸 해도 되나..? 싶기도 하고. 그래서 보류중이다
- openfeature provider 추가
등등
근데 요즘 여유도 없고 체력도 없어서 언제 할진 모르겠다
'Software > development' 카테고리의 다른 글
| Jetbrains new UI에서 아이템 사이 간격 줄이기 (0) | 2025.11.29 |
|---|---|
| 도커허브 대체, AWS Public ECR (0) | 2025.10.20 |
| IntelliJ 구버전 지우기 (0) | 2025.09.22 |
| cherry-studio mcp uv, bun 설정하기 (0) | 2025.08.10 |
| [IntelliJ] DB binary 컬럼 표시 정보 변경방법 (0) | 2025.03.02 |