[문제]

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 }}
username: ${{ secrets.GCP_USERNAME }}
key: ${{ secrets.GCP_PRIVATEKEY }}
port: 22
script: |
sudo docker login -u ${{ secrets.DOCKERHUB_ID }} -p ${{ secrets.DOCKERHUB_TOKEN }}
sudo docker pull ${{ secrets.DOCKERHUB_ID }}/readinglog-app:latest
cd /home/${{ secrets.GCP_USERNAME }}/readingLog
sudo docker-compose down || true
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
내가 작성한 배포 gradle 을 보면 cd /home/... 이라는 구문에서 파일을 찾지 못해 비밀번호 입력에 대한 오류 역시 발생 한 것 같다.
[해결]
리눅스에서 내 계정의 홈 디렉토리 확인 방법 명령을 통해 정확한 경로를 알아냈다.
1. 현재 로그인한 계정명 확인
whoami
2. 사용자 홈 디렉토리 확인
echo $HOME
//결과 예시
readinglog:x:1001:1001::/home/readinglog:/bin/bash
[수정]
echo $HOME 으로 출력 된 결과를 다시 넣어 실행 해주니 오류 없이 잘 들어간 것을 확인 할 수 있었다.
- name: GCP에 배포
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.GCP_HOST }}
username: ${{ secrets.GCP_USERNAME }}
key: ${{ secrets.GCP_PRIVATEKEY }}
port: 22
script: |
sudo docker login -u ${{ secrets.DOCKERHUB_ID }} -p ${{ secrets.DOCKERHUB_TOKEN }}
sudo docker pull ${{ secrets.DOCKERHUB_ID }}/readinglog-app:latest
cd /home/readingLog
sudo docker-compose down || true
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
'git' 카테고리의 다른 글
| git Action으로 Spring boot CI/CD 환경 구축 - gradle.yml 작성 (1) | 2025.05.16 |
|---|---|
| git Action으로 Spring boot 프로젝트 CI/CD 환경 구축 (6) | 2025.05.14 |
| [Github] README.md 에 gif 파일 올리기 (0) | 2024.11.26 |
| [Github] README.md 에 코드 블록 작성하기 (0) | 2024.11.25 |
| Git Commit Convention (1) | 2024.09.06 |