묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨개발자를 위한 쉬운 도커
Could not find or load main class –jar 에러 발생 건
안녕하세요. 현재 아래 빨간색 부분 강의 실습을 진행중에 있습니다. root@873e7cd9bbae:/app# ls build/libs 이렇게 했을 때 아래 처럼 정상적으로 파일이 생성되었습니다.Leafy-0.0.1-SNAPSHOT.jar Leafy-0.0.1-SNAPSHOT-plain.jar 그 다음 아래와 같이 실행 했을 때 Error 가 발생했습니다. 주신 실습 파일 그대로 빌드했습니다. root@873e7cd9bbae:/app# java –jar build/libs/Leafy-0.0.1-SNAPSHOT.jarError: Could not find or load main class –jarCaused by: java.lang.ClassNotFoundException: –jar이경우 어디를 체크해 봐야 하는 건지요?감사합니다.
-
해결됨개발자를 위한 쉬운 도커
OS 관련질문
강의를 듣다가 문득 이런 질문이 떠오르더라고요.지금 저희가 만약 하이퍼 바이저 가상화를 사용한다고 하면 지금 제가 현재 쓰고 있는 windows가 host os가 되고 guest OS의 요청들을 hypervisor를 통해서 system call들을 받게 되는거잖아요. 그럼 컨테이너 가상화에서는 제가 쓰고 있는 Windows(OS)는 아예 배제되는건가요?HostOS가 Linux가 기본이라고 하셨는데 그럼 하이퍼바이저 가상화처럼 Linux라는 OS를 Windows가 host OS가 되어서 쓰는건가요? 조금 복잡하네요 ㅠ
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
MacOs m1 컨테이너 실행 문제
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.MacOs m1 사용중인데 Dockerfile을 이용해서 이미지 빌드한 후에 docker run --privileged -p 8080:8080 --name mytomcat docker-server:latest 명령어로 컨테이너 실행하면 exec /usr/local/tomcat/bin/catalina.sh: invalid argument 오류가 발생합니다edowon0623/docker-server:m1으로 이미지 받아서 실습 내용과 동일하게 실행했습니다
-
해결됨개발자를 위한 쉬운 도커
도커
안녕하세요. 데브위키입니다.강의에 포함된 내용이 아니더라도 강의를 듣다가 궁금하신 점이 생기시면 부담없이 편하게 질문해주세요. 실습에 오류가 발생했거나 명령어가 예상한대로 실행되지 않으신 경우 사용하시는 OS 환경과 화면을 캡처해서 보내주시면 빠르고 자세하게 답변을 드릴 수 있습니다. 질문은 가능한 빠르게 답변 드리겠습니다. 😀감사합니다.
-
해결됨개발자를 위한 쉬운 도커
Dockerfile질문입니다
devcontainer를 통해 vscode에서 개발환경용으로 컨테이너를 만들 수 있다고 이해를 했는데요, 예제의 leafy-frontend 패키지를 보면 leafy-frontend root에 Dockerfile이 있고, .devcontainer 안에도 Dockerfile이 있는데요, .devcontainer 내부의 Dockerfile은 dev container 전용 세팅 Dockerfile인가요 ??
-
미해결세 시간만에 끝내는 쿠버네티스부터 마이크로서비스, CI/CD, 서비스 메시까지
강의 자료와 데모에서 사용한 스크립트와 yml 파일을 제공하지 않나요?
인프런 강의들은 강의에서 사용한 강의 자료(PPT, PDF)를 제공하는데요. 강의 자료를 다운 받는 곳이 없는데요. 강의 자료는 제공하지 않나요? 데모에서 사용한 스크립트와 yml 파일은 제공하지 않나요?
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
애플리케이션 실행시 환경 변수에 대해서
애플리케이션을 실행하게 되면, 여러 환경 변수가 필요하게 되는데 DB 정보 URL 정보라던지. 이런 정보는 깃허브 액션에서 보통 어떻게 처리하나요?? 깃허브 액션의 secrets를 이용해서 도커 빌드시에 --build-arg를 활용하는지 ? 아니면 다른 방법으로 활용하는지 궁금합니다.
-
해결됨개발자를 위한 쉬운 도커
어떻게 Primary-Standby Replication으로 구성되는지
안녕하세요, 강의에서 구현해주신 Primary-Standby Replication 구조가 어떤 명령어를 통해 구성되는지 궁금해서 여쭤봅니다.실습시에 복붙만 해서 정확히 어떤 명령어가 데이터를 복제해주고 동기화할 수 있는지, standby 쪽에서는 어떻게 읽기만 가능한지 궁금합니다.REPMGR_PRIMARY_HOST 는 Primary로 세팅되고,REPMGR_PARTNER_NODES 는 primary를 제외한 나머지 name:port는 standby로 세팅이 되는게 맞을까요? 추가로, primary-standby 방식에서 primary는 "반드시" 한개여야만 하나요 ? 여러개 일수도 있는지 궁금합니다
-
해결됨개발자를 위한 쉬운 도커
캐싱에 대한 질문이 있습니다.
COPY . . 와 같은 copy 레이어에서, 기존의 내용과 다른 경우 새로운 레이어를 생성한다고 했는데요, 기존의 내용과 다른지 같은지를 판별하려면 해당 명령어를 실행하여 결과를 가져와서 비교를 해봐야 같은지 다른지 알 수 있지 않나요?? 혹은 실행전에 특정 해시값이 존재하고, 그 해시값은 비교하는 형식으로 캐싱이 동작하나요 ? 궁금합니다!
-
해결됨개발자를 위한 쉬운 도커
3030 포트 질문
11분 50초에 3030을 사용하는 포트가 없기 때문에 정상적인 응답이 오지 않는다고 말씀하셨는데요, envnodecolorapp 내부적으로 3000 포트를 사용한다고 명시했기 때문에 응답이 오지 않는게 맞나요? 3030은 왜 사용이 불가한지 이해가 잘 가지 않습니다
-
해결됨개발자를 위한 쉬운 도커
nginx port 질문입니다
4분 58초 쯤에 nginx는 80 포트를 사용한다고 말씀하셨는데, 기본적으로 nginx는 80 포트를 사용하는건가요?docker container inspect 시에 portBindings 앞의 80/tcp 중 80이 포트를 의미하는지도 궁금합니다
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
처음 강의에서 push.yaml을 workflows 폴더에서 part1으로 옮겼을때
push.yaml을 part1으로 옮기고 actions가 작동되지 않은 이유가 workflows 폴더에서 벗어나서 그런건가요? 만약 위 이유가 맞다면 테스트 할 때마다 workflows에 파일을 계속 만들어야 되나요?
-
미해결비전공자도 이해할 수 있는 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
-
해결됨개발자를 위한 쉬운 도커
이미지빌드 실습 질문
데이터베이스, 백엔드, 프론트 실습에서 컨테이너 실행 실습과 도커파일 이미지 빌드 실습 두개를 하는데 컨테이너 실행 실습은 커밋 방식을 통해 이미지를 만드는 방법인건가요? 두 실습의 연관이 무엇인지 모르겠어요 ㅠㅠ
-
해결됨개발자를 위한 쉬운 도커
docker push 중 경고
안녕하세요, 강의를 열심히 수강 중인 학생입니다. (실습을 진행 중인 환경은 맥입니다.)docker push 중에 선생님과 다른 결과창이 떠서 궁금한게 생겨 질문남깁니다. 메세지 내용을 정확하게 이해할 수 없어 챗지피티한테 먼저 물어봤습니다. 지피티한테 답변을 받은 이후에 생긴 궁금증들 입니다. 레이어가 마운트되고 있다는게 정확하게 무슨 의민가요? 우선 레이어도 무엇을 지칭하는지 모르겠습니다만ㅠ 현재 실습상황에서는 docker images 명령어를 통해 image를 확인해보면, 이렇게 나와있습니다. 원본 이미지(devwikirepo/simple-web)가 이미 존재하고 그에 대한 사본(sjin980530/simple-web)이 존재하기에 이런 경우가 발생하는건가요? 그럼 지금 진행하고 있는 실습은 push를 docker hub에 하고있는건데, 로컬의 상황과는 관계없는게 아닌가요?ㅠㅠ현재 푸시된 이미지가 단일 플랫폼 이미지라는 말은 그럼 제 실습환경(mac)이 아닌 다른 환경(윈도우 등)에서는 사용하지 못하는 이미지라는 뜻인가요?1과 이어지는 질문입니다 원래 레이어와 푸시된 레이어의 다이제스트가 매핑되고있다라고 하는데, 이건 어떻게 이해하면 될까요? 레이어에 대한 지식이 없어 어떤 상황인지 감이 잘 안잡힙니다. 항상 감사드립니다.
-
해결됨AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
실습시 비용 관련 질문드립니다.
안녕하세요.이번 강의를 통해서 매우 많은 도움을 받고 있어서 먼저 감사하다는 말씀을 드립니다. 비용 관련해서 제가 관리를 잘 못하는 부분이 있어보여서요 이전 다른 분들의 답글에 남겨주셨듯이 이번 기회에 배워보려고 합니다. 먼저 비용이 아래와 같이 나왔습니다. ECS 관련 비용 질문먼저 ECS는 Serverless 개념으로 사용한만큼 비용을 지불한다고 알고 있는데요AWS Fargate 비용의 사용시간이 각각 288.405hours, 144.203 hours입니다. 아래에서 확인해보니 이미지를 다운로드한 시점부터 ecs task가 종료될 때까지 사용된 vCpu, 메모리 등등을 고려하여 산출된다고 하는데요... https://aws.amazon.com/ko/fargate/pricing/ 그렇다면 aws fargate로 청구된 저 요금은 실제 사용과 상관 없이 deploy된 상태라면 발생하는 일정의 고정비라고 보면 되는 것인가요? 그러면 실제로 사용한만큼 지불하는 비용은 어떤 카테고리에 포함될까요? VPC 관련 질문0.005 per idle public IPv4 address per hour--> 이건 탄력적 ip 비용으로 보는 것이 맞을까요? 삭제를 안해두고 있었네요 ㅠㅠ 이번 기회를 통해서 ECS 관련 비용 관리하는 방법을 배워가고 싶습니다. 도움 주시면 정말 감사드리겠습니다.
-
해결됨비전공자도 이해할 수 있는 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로 전송하지 않고 굳이 임시 디렉토리를 두는 이유가 궁금합니다.
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
이벤트 트리거 pull_request의 types
이 부분에서types에 closed 가 추가되는 이유가 있을까요?