기존 JDK를 지우지 않고 JDK 11로 빌드하기: SDKMAN이 PATH를 가로채는 원리
로컬은 Corretto 21인데 빌드 테스트는 JDK 11이 필요할 때, SDKMAN이 기존 JDK를 건드리지 않고 PATH 우선순위만 가로채 세션 단위로 버전을 바꾸는 원리와 기존 JDK를 처리하는 세 가지 선택
로컬은 Corretto 21인데 빌드 테스트는 JDK 11이 필요할 때, SDKMAN이 기존 JDK를 건드리지 않고 PATH 우선순위만 가로채 세션 단위로 버전을 바꾸는 원리와 기존 JDK를 처리하는 세 가지 선택
Docker Buildx는 다양한 아키텍처에서 실행 가능한 이미지를 빌드할 수 있는 Docker CLI이다. 이를 활용하면 특정 아키텍쳐에서 지원하는 이미지로 빌드할 수 있다.
ArgoCD Application 생성시 에러 발생 ▼ Error message Unable to create application: application spec for saassss is invalid: InvalidSpecError: Unable to get app details: rpc error: code = Internal desc = Failed to checkout FETCH_HEAD: git checkout --force FETCH_HEAD failed exit status 128: fatal: Unable to create ‘..git/index.lock’: File exists. Another git process seems to be running in this repository, e.g. an editor opened by ‘git commit’. Please make sure all processes are terminated then try again. If it still fails, a git process may have crashed in this repository earlier: remove the file manually to continue. ...
Github Actions을 사용하여 멀티플랫폼이 지원되는 이미지 빌드 방법과 Docker Hub 혹은 ECR에 Push하는 방법. 그리고 제 3의 Git Repo 파일 내용 변경 방법을 정리해보았다.
Github Actions를 활용해서 애플리케이션 Build & Image push. 애플리케이션과 Kubernetes manifest 파일 변경점 발생시 ArgoCD를 통하여 로컬 Minikube 환경에 자동배포 환경 구축하기
ArgoCD를 통해 내 로컬에 Minikube 클러스터 환경이 구성되도록 만들었다. 그리고 Dockerhub Public image를 가져오던 기존방식에서 AWS ECR의 image를 pull 하는 방식으로 바꿔보았고, 이 과정에서 발생한 문제에 대해 알게된 원인과 해결방법을 기록해보았다.
Tomcat 서버의 애플리케이션 배포는 웹 애플리케이션 운영에서 가장 기본적인 영역이면서도, 실제로는 많은 개발자들이 정확한 동작 원리를 놓치고 있는 부분이다. 최근 고객사 운영 서버의 server.xml 설정을 분석하던 중, <Context> 태그와 <Host>의 appBase 속성이 혼재된 구성에서 WAR 파일 배포 과정에 대한 오해를 발견했다. 기존의 배포 설정 운영 중인 서버의 server.xml 설정: <Host name="localhost" appBase="/home/manager/eps/webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="/home/manager/eps/webapps/legacy" reloadable="false" /> <Context path="/v5" docBase="/home/manager/eps/webapps/ui5" reloadable="false" /> <!-- ... AccessLogValve 설정 ... --> </Host> 이 설정에서 명시적인 <Context> 배포와 appBase를 통한 자동 배포가 공존하고 있었음.. 그런데 여기서 문제가 발생. 새로운 버전의 ui5.war 파일을 배포하려 할 때, 기존 관리자는 다음과 같은 절차를 따르고 있었다. ...