yaml 파일을 읽고 수정할때 유용한 yq 알아보기
·
Infra
자동화 설정을 하거나 bash 스크립트를 구성할 때 yml 파일의 값을 읽고 다른 값으로 변경해야 할 경우가 있다. 이때 유용한 yq 에 대한 글이다. yq v4 버전으로 작성된 글이며, 이전 버전인 v3 와 달라진 점은 아래 공식문서 링크를 참고하면 좋을 것 같다.https://mikefarah.gitbook.io/yq/upgrading-from-v3#updating-writing-documentsyq 알아보기jq 가 JSON 을 다뤘다면, YAML 파일을 읽고 수정할 수 있는 명령어 기반 도구가 yq 다. 기존에 YAML 파일을 처리하려면 sed나 awk처럼 구조를 모르는 텍스트 도구를 사용해야 했지만, 이는 실수가 발생하기 쉽고 유지보수가 어렵다. yq는 YAML 구조를 인식한 채 탐색하고 수정할 ..
[Docker] Single-platform 이미지와 Multi-platform 이미지, Multi-platform 이미지 빌드를 위한 Buildx
·
Infra
Single-platform 이미지 vs Multi-platform 이미지Docker 이미지에는 크게 두 가지 유형이 있다Single-platform 이미지: 오직 하나의 플랫폼(x86_64, arm64 등) 에서만 동작하도록 만들어진 이미지Multi-platform 이미지: 여러 플랫폼용으로 빌드된 이미지들을 하나로 묶은 통합 이미지로 사용 환경에 따라 자동으로 알맞은 플랫폼 버전을 선택해 실행다중 플랫폼 이미지는 동일한 애플리케이션을 여러 아키텍처용으로 따로 빌드한 뒤, 이들을 하나의 이미지처럼 포장한 것이다. 내부에는 각 아키텍처마다 별도의 설정(config)과 실행 파일 집합(layer)이 존재하며, 그 위에 목차 역할을 하는 manifest list가 하나 더 있다. 이 구조 덕분에 사용자는 단..
[Linux] 환경변수 (Environment Variable) 개념과 활용
·
Infra
cli 환경에서 쉘스크립트를 작성하거나 설정을 외부화 할 때 유용한 환경변수 (Environment Variable) 에 대해 정리한 글이다.환경변수(Environment Variable) 개념[환경변수란 무엇인가?]환경변수(Environment Variable)는 운영체제에서 프로세스 실행 시점에 전달되는 설정값이다. 환경변수로 설정한 값은 실행 중인 애플리케이션에게 시스템 자원이나 경로, 사용자 세션, 디버그 모드 여부 등 여러 정보를 제공하는데 활용된다. 리눅스, macOS, Windows 모든 운영체제는 환경변수의 개념을 내장하고 있으며 환경변수를 통해 설정의 외부화가 가능해진다. 예를 들어, 애플리케이션의 데이터베이스 연결 정보를 환경변수 DB_HOST, DB_USER 등으로 설정하면, 코드 변..
[Docker] docker prune 으로 사용하지 않는 오브젝트 정리
·
Infra
docker prune 명령어docker 의 prune 명령어를 이용하면 사용하지 않는 컨테이너, 이미지, 네트워크, 볼륨 등을 일괄 삭제할 수 있다.docker container prunedocker image prunedocker network prunedocker volume prune --filter 를 이용해 필터링 조건을 추가할 수 있다.  # 24시간동안 사용하지 않은 이미지docker container prune --filter "until=24h"# env=dev 라벨을 가진 볼륨docker volume prune --filter "label=env=dev"# 72시간동안 사용되지 않는 builder 캐시docker builder prune --filter "unused-for=72h"#..