forked from codesquad-members-2023/kiosk-max
-
Notifications
You must be signed in to change notification settings - Fork 6
Infra
JeeIn Lee edited this page Jun 29, 2023
·
4 revisions
상황
- Githun Actions 테스트 하면서 gradlew permission denied 이슈 발생
- 혼자서 할 때는 발생하지 않았는데 협업하면서 처음 발생함
원인
- Springboot 세팅을 해주신 네모네모의 개발환경이 Window였다.
- Window 환경에서 작업해서 소스를 push하면 파일 생성 시 기본 권한이 644로 생성된다.
- 644는 루트 사용자, 일반 사용자, 그룹 모두 실행 권한이 없기 때문에 권한을 추가해줘야 한다.
해결
-
+x옵션 또는755권한으로 실행 권한을 추가해주자.
chmod +x ./gradlew- 혹은 git 명령어를 통해 권한을 변경할 수 있다.
git update-index --add --chmod=+x gradlew참고 아래 명령어를 사용하면 git 인덱스에 잡혀있는 파일의 권한을 확인할 수 있다.
git ls-tree HEAD상황
- build 시 gradlew 위치가 인식이 되지 않음
원인
- 1개의 Repository에 FE, BE와 같이 여러 프로젝트가 있을 경우, Github Actions를 그냥 실행하면 루트 경로에서 서버가 실행되기 때문에 내 프로젝트의 파일 경로가 인식이 안됨
해결
- working directory 경로 추가로 해결
defaults:
run:
shell: bash
working-directory: ./be상황
- CI/CD 환경 설정한 branch와 API 개발한 브랜치를 합치고 나서 빌드 오류 발생
- 오류는 각종 메서드 symbol을 찾지 못하는
error: cannot find symbol오류임 - https://github.com/codesquad-gwanaksan/kiosk-max/actions/runs/5333704942/jobs/9664525842
error: cannot find symbol원인
- 인텔리제이에서 지원하는 annotation processing 기능을 사용해서 gradle로 build 할 때 Lombok 관련 설정이 없어서 발생
해결
- build.gradle 파일에 설정 추가
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
}상황
- AWS UI에서 CodeDeploy의 모든 단계가 성공한 것 확인
- EC2에 프로젝트 파일이 모두 들어온 것 확인
- EC2 프로젝트 경로에
[autodeploy.sh](http://autodeploy.sh)파일 있는 것 확인 - BUT 서버 배포 안됨
원인
-
hooks: ApplicationStart단계에서ubuntu권한으로 돌리는데.sh파일 내 스크립트에서 root 권한이 필요한 경로가 있었음
해결
- .sh 파일 내 경로를 ubuntu 경로 안에서만 실행되도록 수정
- 스크립트 수정하지 않고 runas에서 root 권한으로 돌려도 될 듯 함