GitHub Actions에서 "sudo: a terminal is required" 오류 해결 방법 – SSH 배포 자동화 시 필수 체크포인트
·
git
[문제] CI/CD 자동화 도중 GitHub Actions의 appleboy/ssh-action을 이용해 원격 리눅스 서버에 접속하고 sudo 명령을 실행 하려고 했는데 위와 같은 오류가 발생하게 되었다. sudo 명령어가 패스워드를 입력 받기 위한 터미널을 요구 하는데, Github Actions 환경은 터미널 세션이 없는 비대화식 환경이기 때문에 비밀번호를 입력 할 수 없어 실패한 상황과 내가 작성 해 놓은 경로에 파일이나 디렉토리를 찾을 수 없다는 오류도 나타났다. [원인]- name: Deploy to GCP instance uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.GCP_HOST }} u..
Spring CORS 설정: WebConfig 작성부터 wildcard '*', withCredentials 문제 해결까지
·
spring 스프링
[왜 WebConfig를 작성해야 할까?]프론트엔드와 백엔드가 분리된 환경에서는 각각의 도메인이 다르기 때문에 브라우저는 보안상의 이유로 자동으로 요청을 막는다. 이걸 CORS(Cross-Origin Resource Sharing)라고 한다. 예를 들어 프론트앤드의 DNS 주소는 https://project-test인데 프론트가 백에게 API를 요청할 때는 https://api-project-test로 넘겨 주게 된다. 이 경우, 브라우저는 서버에 직접 요청을 보내기 전에 OPTIONS 메서드로 사전요청(preflight)을 보낸다. 그런데 백엔드에서는 "응답 가능해~"라고 명시적으로 허용하지 않으면, 브라우저는 요청 자체를 막아버리는 것이다. 이때 필요한게 바로 WebConfig를 통한 CORS..
docker-compose 작성으로 Spring Boot + PostgreSQL 개발 환경 구축하기
·
서버
[Docker Compose 란?]여러 개의 Docker 컨테이너를 하나의 설정 파일로 정의하고 한 번에 실행 및 관리할 수 있게 해주는 도구이다. [왜 docker-compose를 사용하는가?]멀티 컨테이너 환경을 쉽게 구성한다.웹 서버(Spring Boot), 데이터베이스(PostgreSQL) 등 여러 컨테이너를 동시에 실행해야 할 때, 각각 docker run 명령어를 수동으로 입력하는 건 번거로운 일이다. 따라서, docker-compose.yml 하나를 작성 후 docker-compose up 명령 하나면 전체 컨테이너의 실행 가능하게 된다. 인프라 환경을 코드로 관리서비스 설정(DB 이름, 환경변수, 볼륨, 포트 매핑)을 .yml 파일에 기록하면 설정 변경도 쉽고 공유할 때도 깔끔해진다. ..
GCP 가상 머신에 Nginx 리버스 프록시와 무료 SSL(Let's Encrypt) 적용해 Mixed Content 오류 없애기
·
서버
왜 이걸 해야 할까?HTTPS 사이트에서 HTTP로 된 리소스(css, js, 이미지 등)를 불러오면 브라우저가 "Mixed Content" 오류를 발생시킨다.이 오류는 보안상 취약하며, 크롬 브라우저는 콘텐츠를 차단하기도 한다.SSL 인증서(Let’s Encrypt)를 설치하고, Nginx를 통해 HTTP 요청을 HTTPS로 리디렉션해야 안전한 사이트 운영이 가능해진다. 1. 도메인 발급 (Duck DNS)이 오류를 해결하기 위해 먼저 도메인이 필요하다. 무료 도메인 발급을 찾아보니 전부다 유료로 전환 된 것인지 내가 못 찾는 건지 구글에 있는 것으로는 찾을 수가 없었다. 구글링을 하다가 발견한 처음 보는 사이트에서 용감하게 무료 DNS 사이트에서 발급 받았다... 돈 있으면 꼭! 사서 구매하자 ..
해니01_15
'분류 전체보기' 카테고리의 글 목록