묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨개발자를 위한 쉬운 도커
VScode 컨테이너 내부에서 개발환경 구성
안녕하세요! 데브위키님!우선 도커 강의를 잘 듣고 있고 너무 도움이 되는 강의라 강의를 만들어 주셔서 감사합니다!세션 8의 VScode 컨테이너 내부에서 개발환경 구성 강의를 듣다가 궁금한 점이 생겼는데dockerfile이.devcontainer의 dockerfile과 leafy-front 파일의 dockerfile이 두 개가 있는데강의에서처럼 VScode에 컨테이너 구성을 했을 때, leafy-front 파일의 dockerfile은 쓰이지 않는 것인지또 실제 배포를 했을 땐, leafy-front 파일의 dockerfile이 사용되고 .devcontainer의 dockerfile은 사용이 안 되는 것인지 궁금합니다.마지막으로 이 두 dockerfile은 서로에게 영향을 주진 않는지도 궁금합니다!
-
해결됨애플리케이션 배포 자동화와 CI/CD
무중단 배포시 질문
안녕하세요.질문이 있는데요, 무중단 배포 진행하는 과정에서 Nginx 설정 다음과 같이 하잖아요.upstream backend_servers {3개 서버 설정} 근데 배포할 때 1번 서버가 다운되고 재기동 되는데 10초가 걸린다하면 이 10초 사이에 클라이언트가 요청했는데 1번 서버로 가면 에러나는거 아닌가요?Nginx가 알아서 서버 헬스체크해서 에러나면 정상적인 서버로 보내는건가요?
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
docker volume
저 docker volume을 사용해서 app 폴더의 내용을 수정하면 , 바로 docker container안에 반영되게 하느것을 따라하고 있는데 , 저장후 반영이 안되서 , docker exec -it 를 해서 container안에 들어가 보니 , 사용자가 수정 권한이 없어서 777로 바꾸고 다시 해봐도 잘 안되네요 , cat index.ts파일해도 바뀐 파일이 container안에 반영자체가 안되는거 같습니다 도와주세
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
배포 실패
에러 메시지The overall deployment failed because too many individual instances failed deployment, too few healthy instances are available for deployment, or some instances in your deployment group are experiencing problems.CodeDeploy 공식문서 참조less /var/log/aws/codedeploy-agent/codedeploy-agent.log / ERROR에러 메시지InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error during perform: Aws::S3::Errors::NoSuchKey - The specified key does not exist. - /opt/codedeploy-agent/vendor/gems/aws-sdk-core-3.121.1/lib/seahorse/client/plugins/raise_response_errors.rb:17:in call 혹시나 하고 CodeDeploy Agent restart 재시작EC2인스턴스 IAM 재설정yaml 마지막부분 \ 인식하게 수정다 안되네요...
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
일반 프로젝트에서 많이 쓰는 CI/CD 구축 방법의 스크립트 질문
- name: SSH(원격접속)로 EC2에 접속하기 uses: appleboy/ssh-action@v1.0.3 #env: #APPLICATION_PROPERTIES: ${{ secrets.APPLICATION_PROPERTIES }} with: #SSH로 접속할 때 필요한 값들이 있음. IP주소, ubuntu, 키페어 (EC2에 접속하기 위한 과정) host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} #envs: APPLICATION_PROPERTIES #문제가 있으면 스크립트 중단. script_stop: true script: | rm -rf /home/ubuntu/instargram-server/current mkdir /home/ubuntu/instargram-server/current mv /home/ubuntu/instargram-server/tobe/project.jar /home/ubuntu/instargram-server/current/project.jar cd /home/ubuntu/instargram-server/current sudo fuser -k -n tcp 8080 || true nohup java -jar project.jar > ./output.log 2>&1 & rm -rf /home/ubuntu/instargram-server/tobe스크립트에서 실행 순서에 대한 질문입니다.기존에 있던 서버는 current 파일의 project.jar 로 실행되고 있었을텐데 current 파일을 먼저 날리고 기존의 서버를 종료시켜 주는 부분이 이해가 되지 않습니다. 아마도 제 생각에는 current 폴더 안의 project.jar로 실행되고 있던 8080포트의 프로세스가 current 폴더를 삭제해주면 에러가 생길 것 같은데 에러가 생기지 않는 이유가 궁금합니다. 프로젝트 종료 -> 프로젝트가 담겨있던 폴더 삭제 -> 새 프로젝트 폴더 생성 순으로 가야 할 것 같은데 기존 프로젝트 폴더 삭제 -> 새 프로젝트 폴더 생성 -> 프로젝트 이동 -> 기존 프로젝트 종료 -> 새 프로젝트 실행 이런 순서로 해도 에러가 안나는 이유가 궁금합니다. 두서없이 써서 죄송합니다 ㅎㅎ;
-
미해결애플리케이션 배포 자동화와 CI/CD
젠킨스->애플리케이션 서버 접속 안됨
젠킨스서버에서 공개키를 생성하고application 서버 ~/.ssh/authorized_keys에 접속후 키를 입력을 했는데이미 키가 있어서 지우고 다시했는데도 안되고두개를 등록했는데도 안되서 문의남깁니다.ㅠㅠ
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
git action run command timeout
인스턴스 생성시 전부 프리티어로 생성을 했었는데git action run command timeout 발생했습니다혹시나 다른분들도 이런상황이라면aws ec2 메모리 용량 증설에 대해서 검색해보세요15분이 기다려도 안되던데 바로 적용이 되네요
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
Ec2 인스턴스로 요청이 안됩니다.
안녕하세요.EC2 인스턴스 및 보안 그룹 설정 후 git clone, Jar 빌드 후 run까지 되는데외부에서 IP주소:port로 요청을해도 요청이 들어오지 않아 질문드립니다.curl 을 해봐도 커넥션 타임아웃이 발생하는데따로 확인해야하는 부분이 있을까요?강의랑 다르게 한것은 AWS 에서 우분투 에서 깃 클론 후 ./gradlew 명령어가 없다고 나와서 따로 wget으로 설치 후 환경변수 설정했습니다.감사합니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
scp로 EC2에 jar 전송 중 scp timeout로 인한 실패 문제입니다
[실습] 일반 프로젝트에서 많이 쓰는 CI/CD 구축 방법 - 에서 발생하는 오류입니다,, ```- 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해당 yml로 설정 하고서도 반복해서 timeout으로 연결이 실패하네요,, 직접 script로 ec2 내부에서 동작하는 실습까지는 모두 작동했었습니다 따로 에러를 구글링해보았지만 유의미한 해결책이 보이지 않아 올려봅니다
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
수업자료 질문-Case 2 - 일반 웹 프로젝트 구조에 CI/CD 적용하기 (S3, Cloudfront)
전체적인 흐름 이미지를 보면 3번과 4번에서 캐시무효화 명령 및 캐시 무효화를 하는 설명이 작성되어 있습니다. 깃헙 액션에서 3번을 수행하는것 까진 이해가 되는데 4번은 누가 하는건지 모르겠습니다. 제가 찾아본바로는 3번만 수행하면 유저가 다음 요청시 cloudfront가 새로 s3에서 데이터를 받아오고 해당값을 캐싱하는것으로 이해했습니다.https://jscode.notion.site/Case-2-CI-CD-S3-Cloudfront-bbd22542211046feac5f04a3955ddf71
-
해결됨개발자를 위한 쉬운 도커
[컨테이너 내부에서 개발하기] - volume mount 질문 드려요.
안녕하세요. 틈틈히 강의를 듣고 있습니다. 질문 하나 있어서요. (Node.js, VSCode) 컨테이너 내부에서 개발환경 구성 강의 마지막 쯤에 볼륨은 마운트 된다고 하셨는데, 강의 상에서는 leafy/leafy-frontend 와 마운트 되더라구요. (컨테이너 안에서는 /workspace/leafy/leafy-frontend) 근데 혹시 이 마운트 되는 경로를 따로 설정으로 바꿀 수 있을거 같은데 .. 어떻게 하면 될까요? (예를 들면 leafy-frontend <-> /workspace/leafy-frontend 이렇게요.) 안녕하세요. 데브위키입니다.강의에 포함된 내용이 아니더라도 강의를 듣다가 궁금하신 점이 생기시면 부담없이 편하게 질문해주세요. 실습에 오류가 발생했거나 명령어가 예상한대로 실행되지 않으신 경우 사용하시는 OS 환경과 화면을 캡처해서 보내주시면 빠르고 자세하게 답변을 드릴 수 있습니다. 질문은 가능한 빠르게 답변 드리겠습니다. 😀감사합니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
S3 권한 문제 어떻게 해결해야 할까요 ㅠㅠ?
S3 에 프로젝트 파일 업로드하기부분 해결하려고 세시간 넘게 삽질했는데... 잘 되지 않아서 결국 질문 드립니다... ㅜㅜ 제공해주신 수업 자료 참고해서 여러 번 반복하고, 구글에 물어보고 했는데 정확히 어떻게 해결해야 맞는지 모르겠습니다ㅠㅠ 어떻게 해야 할까요..?Run aws s3 cp --region ap-northeast-2 ./`$GITHUB_SHA.tar.gz s3://cicd/$GITHUB_SHA.tar.gz upload failed: ./db57ef8b92927c241fb3b672c2dc0ad8c20c6d79.tar.gz to s3://cicd/db57ef8b92927c241fb3b672c2dc0ad8c20c6d79.tar.gz An error occurred (AccessDenied) when calling the CreateMultipartUpload operation: Access Denied Error: Process completed with exit code 1.
-
미해결개발자를 위한 쉬운 도커
이미지 레지스트리 manifest 관련 질문입니다.
이미지 레지스트리 part.3 부분 진행하다가 아래와 같은 에러가 발생하는데 manifest관련 설정은 어떻게 해야할까요..?찾아보다가 도저히 모르겠어서 질문 올립니다..! ㅠ docker push mydocker123/my-simple-web:0.1 The push refers to repository [docker.io/mydocker123/my-simple-web] missing content: content digest sha256:d5a11541ef8ce442f8b03bdb816b0128e83650cdc30e65f78985912aa5da27a6: not found Note: You're trying to push a manifest list/index which references multiple platform specific manifests, but not all of them are available locally or available to the remote repository. Make sure you have all the referenced content and try again.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
Docker Volume 오류(reference, lowercase)
#ERROR1repository 이름이 소문자여야 한다는 에러입니다. 제가 폴더 명을 "Docker"로 해놨었더니 이런 오류가 뜨더라고요. 폴더명을 "docker"로 바꿨더니 해결되었습니다.kim-yaegun@gim-yegeons-MacBook-Air Docker % docker run -p 5001:8080 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app yaegun/nodedocker: invalid reference format: repository name (Docker) must be lowercase.See 'docker run --help'.#ERROR2레퍼런스가 유효하지 않다는 에러입니다.kim-yaegun@gim-yegeons-MacBook-Air docker % docker run -p 5001:8000 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app yaegunkim/nodedocker: invalid reference format.See 'docker run --help'.이건 $(pwd)를"$(pwd)"로 바꾸어 주니 해결되었습니다.kim-yaegun@gim-yegeons-MacBook-Air docker % docker run -p 5001:8000 -v /usr/src/app/node_modules -v "$(pwd)":/usr/src/app yaegunkim/nodeSuccessful
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
[섹션3 - 내가 만든 이미지 기억하기 쉬운 이름 주기] 네이밍/태그 에러
"docker build -t YaegunKim/hello:latest ./"로 빌드를 잘 한 것 같은데 아래와 같은 에러가 나오더라고요.#COMMANDdocker run -it YaegunKim/hello#ERRORUnable to find image 'YaegunKim/hello:latest' locallydocker: Error response from daemon: Get "https://YaegunKim/v2/": dialing YaegunKim:443 container via direct connection because has no HTTPS proxy: resolving host YaegunKim: lookup YaegunKim: no such host.See 'docker run --help'.근데 또 아이디로 run을 하면 잘 되고...#PROBLEM-SOLVING이유는 버전은 "latest"가 아닌 "lastest"로 해서 에러가 났던 것이었습니다. 다시 빌드 하고 실행해보니 hello가 잘 출력되네요 ㅎㅎ
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
ECR + CodeDeploy를 활용한 CI/CD에서 쉘 스크립트 질문
섹션4의 5번째 강의 5분 17초에 보면ECR에 저장된 이미지를 가져오기 위해ECR의 주소가 적혀있는데요. 이 코드들이 깃헙에 올라가게 되면저의 프라이빗 ECR 주소가 외부로 공개가 되는 것 같은데실제 현업에서도 이렇게 ECR 주소가 외부로 공개하는 방식으로 사용하나요?현재 여럿이서 진행하는 프로젝트의 CI/CD 구축을 해당 강의를 참고하여 진행하려고 하는데 스크립트 작성을 하면서 의문점이 생겨 글 남깁니다! 강의 항상 잘 듣고 있습니다 감사합니다~
-
미해결애플리케이션 배포 자동화와 CI/CD
Host key verification failed. 에러만 자꾸 발생하네요..
해당 에러 확인하고 젠킨스 인스턴스에서 도커로 젠킨스 컨테이너 들어가서 키 생성했고 배포 인스턴스에 ~/.ssh/authorized_keys 파일에 키값 정확히 입력했는데 다른 강의흐름처럼 다른 에러로 넘어가질 않네요... 젠킨스 컨테이너에서 해당 경로 값 복사cat /var/jenkins_home/.ssh/id_rsa.pub배포 인스턴스에 해당 파일에 복사한 값 넣기(다른 엔터나 어떤값 들어갔는지는 체크했는데 없었습니다...)cat ~/.ssh/authorized_keys몇번씩 인스턴스새로생성하면서 시도해보는데 계속 이상태라 질문올려요~
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
java 환경변수 주입 질문
안녕하세요 실습하다보니 질문이 생겨서 질문드립니다. 저같은 경우에는 .yml 파일을 올리돼, 중요한 값은 ${변수명} 이런식으로 작성해서 올리는 편입니다. 따라서 이를 EC2 서버의 .bashrc 파일에 export로 설정한 뒤, source ~.bashrc로 값을 초기화해놓았습니다. echo로 확인해보니 문제없이 출력되구요... 그 후 CICD를 적용시켯더니 계속 해당 환경변수를 찾지 못한다는 에러가 발생합니다.. 어떤 부분이 잘못되었는지 모르겠어서 질문드립니다. name: deploy chatGPT server to AWS EC2 on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - name: ssh로 서버 접근 & git pull 후 재배포 진행 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: | source ~/.bashrc cd /home/ubuntu/spring-chatgpt-communication git pull origin main ./gradlew clean build sudo fuser -k -n tcp 8081 || true nohup java -jar build/libs/*SNAPSHOT.jar > ./output.log 2>&1 & 아래는 저의 CICD yml 파일입니다!
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
`err: Error response from daemon: Head "https://~~~/v2/issue-tracker/manifests/latest": no basic auth credentials` 에러 문제입니다.
안녕하세요, 재성님!다름이 아니라 강의를 보며 공부하고 있다가 에러를 마주했는데 해결이 잘 되지 않아 질문드립니다. SSH 로 EC2 에 접속하기란 스크립트 실행 중 다음과 같이 에러가 발생합니다.ec2의 ~ 폴더 .docker 에 `config.json` 도 추가했습니다. IAM 사용자에 AmazonEC2ContainerRegistryFullAccess 정책을 추가하고, 보안 자격 증명에서 액세스 키와 비밀 키를 발급 받아 github 의 Settings 탭에 Secret Key 에 환경변수로 추가해주었습니다. AmazonEC2ContainerRegistryFullAccess 정책을 추가한 역할을 만들어서이 역할을 EC2 의 IAM 역할 수정으로 등록해주었습니다. 다음은 제 CI/CD .yml 파일 입니다.https://sky-feast-c76.notion.site/yml-5d542fb264d24e58a3f1342fc076343c?pvs=4 좋은 강의 만들어 주셔서 감사합니다!!
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Jenkins 내용 추가
수강전 질문에 Jenkins Webhook 기능을 추후에 필요하면, 추가 강의로 포함해 놓도록 하겠습니다고 하셨습니다. 기대하겠습니다.