전체 글(279)
-
[Docker] Image 중첩을 통해, 빌드 시간 단축하기
1. 문제의 상황 PWA(Progressive Web App)를 Tizen OS와 Android OS 환경에서도 사용할 수 있게 패키징을 하던 중이었습니다. 그래서 AWS EC2에 관련 Studio CLI들을 설치했는데, 제가 Express.js를 도커 컨테이너로 CI/CD 해놨다는 사실을 까맣게 잊고 있었습니다... 도커 컨테이너는 그 자체로 완전히 논리적으로 독립된 공간이기 때문에, EC2에 있는 Tizen Studio CLI와 Android Studio CLI와 1)통신을 하거나, 2)디렉토리 마운트를 해서 접근할 수 있게 해야 합니다. 하지만 Tizen CLI와 Android CLI는 도커 컨테이너가 아니기에 통신하는 방법은 사용할 수 없었고, 그러면 접근 가능한 게 디렉토리 마운트 밖에 없었습니..
2025.03.30 -
[Jenkins] 역방향 프록시 설정이 잘못되었습니다.
1. 문제 상황 Nginx에서 `HTTPS`를 적용했는데, Jenkins 설정에 들어가보니 위와 같이 "역방향 프록시 설정이 잘못된 것으로 파악되었습니다."란 문구가 떴습니다. Nginx 설정 파일에서는 HTTP 요청이 들어오면 HTTPS로 리디렉션하도록 설정 되어있는데요.# HTTP를 HTTPS로 리디렉션server { listen 80; server_name [my-domain]; # 모든 HTTP 요청을 HTTPS로 리디렉션 return 301 https://$host$request_uri;} 이는 Jenkins URL이 `http`로 설정되어 있기 때문입니다. 실제 사용자 트래픽은 `https://`로 리디렉션이 일어났지만, Jenkins 자체는 자신의 URL이 `http//..
2025.03.22 -
[Jenkins, Docker] docker.sock: connect: permission denied
1. 문제가 발생한 상황DooD(Docker Out of the Docker) 방식으로 인프라를 구성하고 싶어, Jenkins 컨테이너를 실행할 때 도커 소켓과 도커에 대한 경로를 마운트하여 실행했습니다.docker run -d --name jenkins \ --network pwandora_network \ -v /home/ubuntu/jenkins_home:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ -e JENKINS_OPTS="--prefix=/jenkins" \ -e TZ=Asia/Seoul \ --restart unless-stopped \ ..
2025.03.18 -
[Jenkins] ERROR: Error fetching remote repo 'origin' (권한 문제)
1. 문제가 발생한 상황Springboot CI/CD를 위한 `Jenkins Pipeline`을 짜고 있었는데, `Docker`로 띄워진 `Jenkins`에겐 파일 생성 및 복사 권한이 없어서 실패했습니다.withCredentials([file(credentialsId: 'jasypt-encryption-key', variable: 'JASYPT_KEY_FILE')]) { sh 'cp $JASYPT_KEY_FILE ./src/main/resources/application-key.yml' sh './gradlew clean build -x test'} 이와 같은 경우, 1)해당 디렉토리의 권한을 Jenkins에게 주거나, 2)Jenkins 컨테이너를 실행할 때, 루트 권한으로 실행하는 방법이 ..
2025.03.18 -
[Nginx] 413 Error: Request Entity Too Large
상황 설명🛠️환경- SpringBoot 3.4.2- Swagger 2.0.2- Nginx 1.27.3 사진 업로드 기능을 만들고 Swagger에서 테스트를 했는데, "413 Error: Request Entity Too Large" 오류가 뜨더군요. SpringBoot `application.properties` 설정에 파일 업로드 제한 크기를 설정해줬음에도 불구하고 위와 같은 오류가 떴습니다.# photo missionspring.servlet.multipart.max-file-size=10MBspring.servlet.multipart.max-request-size=10MB 그런데 오류 메시지로 온 Response body에 보니 한 가지 보이는 키워드가 있습니다. nginx/1.27.3>/cent..
2025.02.16 -
[MySQL] SpringBoot에서 Point, Polygon 데이터를 자바 객체에 담기 (with MyBatis)
상황 설명🛠️환경- SpringBoot 3.4.2- MySQL 8.0.41- MyBatis 3.0.4- Liberica JDK 17 LTS 모바일 프로젝트를 진행하던 중, 좌표 데이터를 저장할 일이 생겼습니다. 지도에서 원하는 위치에 사각형을 그리고, 사용자가 폰을 들고 해당 영역에 들어가면 이벤트가 발생할 수 있도록 만들기 위함이었죠. (+지도에서 시각적으로 표시) 저는 RDBMS 기술 스택으로 `MySQL`을 선택한 상황이었고, `MySQL`에는 이러한 공간 데이터를 저장하는 데이터 타입(ex. Point, Polygon)을 지원하는 걸로 알고 있었습니다. 요구사항에 공간에 대한 복잡한 연산이 필요 없어서 그냥 테이블 컬럼으로 각각 위도 경도 좌표를 저장할까도 생각했지만, 중앙점 좌표까지 총 10..
2025.02.16