묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
yml 자동완성?
안녕하세요~! 다름이 아니라 강사님 처럼 yml 자동완성 ? 하고 기능 사용하고 싶은데, 어떻게 설정하면 되지 알 수 있을까요? 플로그인 Spring Ass ... 찾아봤는데 없더라고요. 그래서 어떻게 하면 되지 여쭤봅니다. 학생계정이라 유료버전 사용 중 입니다.항상 좋은 강의 감사합니다.좋은 하루되세요 ~ 감사합니다
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
비용
강의를 나눠서 듣는 중인데요. 안 들을 때는 비용 나가지 않게 aws EC2 종료를 매번 해야하나요? 탄력적 IP 를 오래 사용 과금이 있을 수 있다고 하는데, 걱정되어 질문 드립니다!
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
Permission denied
ubuntu@ip-172-31-47-72:~$ cd git-actions-study/ubuntu@ip-172-31-47-72:~/git-actions-study$ lsREADME.md build.gradle gradle gradlew gradlew.bat settings.gradle srcubuntu@ip-172-31-47-72:~/git-actions-study$ ./gradlew clean build-bash: ./gradlew: Permission denied실습 개인 프로젝트에서 많이 쓰는 CI/CD 구축방법에서 빌드과정중 권한이없다고 하는 것 같은데, 혹시 이 상황에서 어떻게 하면 되지 여쭤봐도 괜찮을까요...?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
s3와 ecr에 쌓이는 데이터에 대해서
s3에 압축된 실행파일 업로드ecr에 빌드된 이미지 업로드빌드할때마다 이 두과정을 거쳐서 각각 S3와 ECR에 파일과 이미지가 쌓여서, 만약 배포를 10번 하면 10개의 실행파일과 이미지가 불필요하게 저장됩니다.혹시 $GITHUB_SHA 같은 생성되는 변수를 사용하지 않고고정된 이름을 사용해서 덮어 씌워서 사용해도 문제는 없나요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
branch 분기
지금은 branch 분기 하지 않고 main 브런치 하나만 하지만dev cicdprod cicd 돌리게 될때 분기처리는 어떻게 하시나요 ?간단히하면 그냥 github actions 파일을 두개 만들면 될것같은데강사님은 어떻게하시나요 ?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
배포 실패 디버깅 질문
안녕하세요 깃허브액션작업은 성공했고, codedeploy에서 ec2에 배포하는 과정에서 에러가났습니다에러미시지: The deployment failed because a specified file already exists at this location: /home/ubuntu/github-actions-practice/package.json 2024-12-14T02:35:19 INFO [codedeploy-agent(3496)]: [Aws::CodeDeployCommand::Client 200 0.023341 0 retries] put_host_command_complete(command_status:"Failed",diagnostics:{format:"JSON",payload:"{\"error_code\":5,\"script_name\":\"\",\"message\":\"The deployment failed because a specified file already exists at this location: /home/ubuntu/github-actions-practice/package.json\",\"log\":\"\"}"} 그런데 EC2의 프로젝트 디렉토리에는 기존 플젝코드가 있는게 당연한 것 아닌가요?? 그럼 appspec.yml에 기존 코드를 삭제하고 새로운 코드를 덮어쓰는 옵션같은 것을 추가해야하는 걸까요?이 에러가 왜 발생한것인지어떻게 해결해야하는지 몰라서 질문드립니다!
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
테스트 코드 빌드오류
안녕하세요 강의 설명이 너무 좋아 잘 따라가고있습니다ㅎㅎ저는 Docker + Spring Boot로 배포 자동화 시키는게 목표입니다! 문제는 기존에 로컬 DB 연결로 테스트 코드를 작성했었는데요!(개인 프젝)이 때문에 빌드가 안되다보니 따라가는데 조금 어려움이 있었습니다..! EC2안에 도커로 DB 띄워서 해결해야만 할 것 같은데 이렇게 해도Docker+Spring Boot 목차를 따라가는데 문제 없을까요? 테스트 파일을 삭제하고 싶진 않아서요!!다른 좋은 방법이 있으시다면 알려주시면 감사하겠습니다!
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
codedeploy 배포 실패 에러 로그 질문
안녕하세요. 깃헙 액션 작업은 통과하였는데, codedeploy는 배포에 실패했습니다. codedeploy 로그파일을 찾아보았는데 제가 추측하는 에러 부분은 아래 부분일 것 같은데, 혹시 어느 부분이 잘못 되었을까요? ..2024-12-07T16:12:48 WARN [codedeploy-agent(7606)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Calling PutHostCommandComplete: "Code Error" 2024-12-07T16:12:48 INFO [codedeploy-agent(7606)]: [Aws::CodeDeployCommand::Client 200 0.018818 0 retries] put_host_command_complete(command_status:"Failed",diagnostics:{format:"JSON",payload:"{\"error_code\":5,\"script_name\":\"\",\"message\":\"undefined method `[]' for nil:NilClass\",\"log\":\"\"}"},host_command_identifier:"eyJiYXRjaElkIjoiMmE3MWFiOWRhOGNmODAxYTM3OWZiNmFkMGZhYzk1NjMvcHVibGljMDA1IiwiZGVwbG95bWVudElkIjoiQ29kZURlcGxveS9hcC1ub3J0aGVhc3QtMi9wcm9kL29ycGhldXM6cHVibGljMDA1LzIzNTQ5NDc3NjUzMDpkLTNKTzIyQzkwOSIsImhvc3RJZCI6ImFybjphd3M6ZWMyOmFwLW5vcnRoZWFzdC0yOjIzNTQ5NDc3NjUzMDppbnN0YW5jZS9pLTBlYzEzOTRiZGRiNjg5ODBkIiwiY29tbWFuZElkIjoiQXBvbGxvRGVwbG95Q29udHJvbFNlcnZpY2V8YXJuOmF3czplYzI6YXAtb궁금한 점은1. 위와 같은 에러가 발생한 이유2.강사님이 올려주신, codedeply 에러 로그 보는법을 확인했는데, 제가 리눅스 명령어에 익숙하지 않아서 .. 어떠한 방식으로 에러 로그를 확인하는게 좋을까요?(cat이나 이런거로 읽으면 로그가 너무 많이 출력 되는데, 에러를 해결할 수 있는 핵심 로그만 볼 수 있는 방법이나, 강사님만의 방법이 있을까요?!)
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
docker 기반 cicd 배포
안녕하세요 docker 기반으로 cicd 적용시에docker stop 하고 docker rm 으로 container 죽인담에 다시 docker pull -> docker start 하는거면 그 잠깐의 시간이겠짐나 어쨋든 끊기지 않나요 ?혹시 끊기는 시간을 더 줄인다고 하면 우선 먼저 docker pull 를 하고나서 이전 docker stop docker rm 을 하고 새롭게 docker pull 받은것을 docker run -d 할수있으면 좋을것 같은데 방법 있을까요 ?ecs 에서도 ec2 가 있는걸로 알고있는데요 ecs ec2 를 사용하게 되면 blue green 은 아니더라도 롤링 배포를 할 수 있을것 같은데 사용하지 않은 이유가 있을까요 ?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
pm2 restart
만약에 수정된것을 git pull 받고 pm2 를 다시 동작시키는거면 1. git pullnpm inpm run buildpm2 reload로 해도 되는걸로 알고있는데kill 죽이고 나서 다시 restart 하는 이유가 있나요 ? 서버안에서 npm run build 하게 되면 메모리 hang 으로 서버가 뻗어버리던데 이럴땐 어떻게 해결하시나요 ?? github actions 라는 컴퓨터 한대를 빌린다고 하셔서 거기에 빌드를 하면 메모리 이슈가 없겠구나 생각이 드는데 스크립트를 보면 결국엔 ssh 로 ec2 host 접근해서 빌드 하더라고요 그러면 ec2 서버내에서 빌드하는게 아닌가 ?? 생각이 들어서요 ㅎㅎ
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
steps
안녕하세요 ! 강의 잘 듣고있습니다. 말씀하신것처럼 Steps 은 작업을 수행하는 가장 작은 단위라고 하셨잖아요그리고 하나의 Steps 에 모든 로직이 들어가도 되고 아니면 나눠서 넣어도 된다고하셨는데요 하나의 Step 에 모든 로직이 들어가도 된다고 하면 굳이 나눠야 하는 이유가 있을까요 ?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
[실습] 개인 프로젝트에서 많이 쓰는 CI/CD 구축 방법 - 2에서 fail..
[실습] 개인 프로젝트에서 많이 쓰는 CI/CD 구축 방법 - 2 에서 깃액션 배포할때 계속 이렇게 뜨는데 알려주세요 ㅠㅠㅠㅠㅠㅠㅠ 5번해봤는데 계속 저렇게뜹니다..
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
codedeploy세팅/ iam설정 강좌에서
codedeploy세팅/ iam설정 강좌에서 키랑 값이 옵션없음이라고 뜹니다. 이름을 줬음에도...ec2도 생성을 해야하는 걸까요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
안녕하세요 빌드 오류가 생겨서 질문드립니다.ㅠ
안녕하세요 선생님일반 프로젝트에서 많이쓰는 CI/CD 구축방법 실습 따라하고 있는데 위와 같은 오류가 게속 발생합니다.ㅠ인텔리제이안에서 setting,project structure 버전도 17로 맞추고, 환경변수도 확인해보고 java version도 다 확인해봤는데 같은 오류가 떠서 질문드립니다... 혹시 다른게 원인일까요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
혹시 강의 github자료는 없나요 ?
혹시 강의 github자료는 없나요 ?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
Github Actions로 ECR 에 이미지 push 후, EC2 에 ssh 로 접속해 pull 받을 때 발생하는 문제
======CMD====== sudo docker stop github-action-prod || true sudo docker rm github-action-prod || true sudo docker pull [ECR URL]/github-action-prod:latest sudo docker run -d --name github-action-prod -p 8080:8080 [ECR URL]/github-action-prod:latest ======END====== err: Error response from daemon: No such container: github-action-prod err: Error response from daemon: No such container: github-action-prod err: Error response from daemon: Head "https://[ECR URL]/v2/github-action-prod/manifests/latest": no basic auth credentials 2024/10/03 02:07:08 Process exited with status 1위와 같이 컨테이너를 찾을 수 없다 그러고 'no basic auth credentials' 이런 문구가 출력됩니다로그인도 잘됐고, ECR에 push도 잘 됐는데 왜 이런 문제가 발생하는 걸까요ㅜㅜ실행한 스크립트는 아래와 같습니다 steps: - name: Github Repository 파일 불러오기 # uses 키워드로 Github Actions의 라이브러리를 사용할 수 있다 uses: actions/checkout@v4 - name: JDK 17 설치 uses: actions/setup-java@v4 with: distribution: corretto java-version: 17 - name: application.yml 파일 만들기 run: echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./src/main/resources/application.yml - name: 테스트 & 빌드 run: ./gradlew clean build - name: AWS Resource에 접근할 수 있게 AWS credentials 설정 uses: aws-actions/configure-aws-credentials@v4 with: aws-region: ap-northeast-2 aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} # ECR 에 업로드 하기 위한 과정 - name: ECR에 로그인하기 id: login-ecr uses: aws-actions/amazon-ecr-login@v2 - name: Docker 이미지 생성 run: docker build -t github-action-prod . - name: Docker 이미지에 Tag 붙이기 run: docker tag github-action-prod ${{ steps.login-ecr.outputs.registry }}/github-action-prod:latest - name: ECR에 Docker 이미지 Push하기 run: docker push ${{ steps.login-ecr.outputs.registry }}/github-action-prod:latest # ECR 에 업로드한 Docker Image 를 EC2 로 가져와 실행시키기 - name: SSH로 EC2에 접속하기 uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} script_stop: true script: | sudo docker stop github-action-prod || true sudo docker rm github-action-prod || true sudo docker pull ${{ steps.login-ecr.outputs.registry }}/github-action-prod:latest sudo docker run -d --name github-action-prod -p 8080:8080 ${{ steps.login-ecr.outputs.registry }}/github-action-prod:latest
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
Github Actions
안녕하세요 . ㅎㅎ 강의 잘 보고있습니다.Jenkins 와 Github Action 비교를 해주셨는데요.Github Actions 도 많이 사용하지만 Jenkins 도 많이 사용하더라고요 gpt 로 검색을 해보니까 Plugin 이 Jenkins 가 더 좋다고 하는데 강사님은 어떻게 생각하시나요 ?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
탄력적 IP
말씀하신것처럼 만약에 Frontend 를 Ec2 에 배포했을때 탄력적 IP 가 없다면 불편할것 같습니다. 하지만 강의 초반에 말씀하셨던것처럼 Frontend 배포할때 S3 로 배포할수있을것 같습니다. 이럴경우에 Backend 입장에서 S3 로 배포된 Frontend 만 인바운드 규칙으로 열어주려면 어떻게 해야할까요 ?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
tobe 디렉토리를 사용하는이유
안녕하세요 강사님!강의 너무 잘듣고 있습니다.강의를 보다가 궁금한 점이 생겨서 질문드립니다. - name: SCP로 EC2에 빌드된 파일 전송하기 uses: appleboy/scp-action@v0.1.7 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} source: project.jar target: /home/ubuntu/instagram-server/tobe - name: SSH로 EC2에 접속하기 uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} script_stop: true script: | rm -rf /home/ubuntu/instagram-server/current mkdir /home/ubuntu/instagram-server/current mv /home/ubuntu/instagram-server/tobe/project.jar /home/ubuntu/instagram-server/current/project.jar cd /home/ubuntu/instagram-server/current sudo fuser -k -n tcp 8080 || true nohup java -jar project.jar > ./output.log 2>&1 & rm -rf /home/ubuntu/instagram-server/tobe해당 부분을 보면 tobe폴더로 빌드파일을 전송하고 current라는 별도의 디렉토리를 두어서 그 디렉토리로 빌드파일을 옮겨서 실행하고 있는데 혹시 이렇게 하는 이유가 있을까요?? 바로 current로 전송하지 않고 굳이 임시 디렉토리를 두는 이유가 궁금합니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
region
만약에 사용자가 한국에도 있고 다른나라 미국 프랑스 에도 있다고 한다면어떻게 해야할까요 ?