안녕하세요, 강의 잘 듣고 있습니다 ! Dockerfile과 githubActions의 yml 파일의 경계를 잘 모르겠습니다. Dockerfile을 통해 jar를 만들어서 실행할 수도 있고, 강의처럼 yml 파일에서 jar파일을 만들 수도 있는데, 현업에서는 이 두 방식 중 어떤 걸 사용하는지 또, 어떤 이점 때문에 사용하는지 궁금합니다...! 추가로, mysql이나 redis 같은 경우는 따로 Dockerfile을 작성하지 않고 compose.yml 에서 바로 이미지 생성을 하고 있는데 이렇게 되는 경우, EC2에서 이미지가 만들어지니 각각의 Dockerfile을 만들어서 gitActions 단계에서 처리하는 게 좋을까요...?
안녕하세요. EC2 강의를 듣던 중, 프론트엔드 애플리케이션은 주로 CDN을 통해 배포하고, 백엔드 API 서버는 EC2에 배포한다고 설명해주셨는데 이와 관련해 궁금한 점이 있습니다. 만약 CSR 기반의 프론트엔드 프로젝트라면, 빌드 후 생성된 정적 파일을 S3에 업로드하고 CloudFront 같은 CDN을 통해 배포하는 방식이 충분하다고 생각합니다. 하지만 최근에는 React에서 Server Actions 같은 서버 기능이 도입되고, Next.js 역시 SSR, API Routes 등을 포함하면서 정적 파일만으로 구성되지 않는 경우가 많아지고 있습니다. 이런 경우, 프론트엔드 애플리케이션은 어떤 방식으로 어디에 배포하는 것이 적절할까요? CDN만으로는 어려워 보이는데, EC2나 다른 대안이 있는지도 궁금합니다. 감사합니다.
compose up -d --build 를 통해 최종적으로 다합해서 시작을했는데 에러가 뜨는게아니라 계속 과부하 걸리는지 EC2가 먹통이되더라고요 로컬로해도 계속 메모리부족같은게 뜨면서 프로그램 실행중인거 끄라고 그러는데 뭔가 메모리를 어디서 엄청 잡아먹는거같은데 다른건 다괜찮은데 compose로 mysql이랑 springboot연결하면 그런거같네요
아마 h2같은 in-memory DB를 사용하지 않고, 직접 mysql driver를 추가한 경우는 datasource객체를 만드려고 시도하면서 url, username, password같은 정보가 없다면 스프링 서버를 띄우기도 실패할 것입니다! 이렇게요. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. 스프링 프로젝트를 생성하면 최초로 만들어지는 // java @SpringBootTest public class XXTests { @Test void contextLoads() { } } // kotlin @SpringBootTest class XXTests { @Test fun contextLoads() { } } 이 테스트코드도 실패할거에요 그럴때는 해당 클래스 파일을 없애거나 @SpringBootTest 어노테이션을 제거하거나 맨 위에 @Disabled를 추가해줘서 테스트를 생략하게 하면 될 것 같습니다! 보통 테스트코드에서도 스프링 컨테이너 뜰 때 드라이버가 있다면 DataSource 빈을 만드려고 시도하다가 기본 ENV가 없다면 실패할 것 같은데.. 재성님은 아마 테스트코드를 지우신게 아닐까 생각되네요!
현업에서는 그러면 누가 PUSH를 해서 CI/CD로 적용을 시키나요? 아무나 다 깃 푸쉬로 cicd를 적용하면 깃헙에 merge나 충돌이 날거같은데 그러면 막상 깃헙에 올라온 코드랑 ec2 올라가있는 코드가 다를거같은데 이 부분이 잘 안그려지네요... 질문이 두서가 없어서 죄송합니다 ㅠㅠ 어떤식으로 현업에선 흘러가는지 궁금합니다,.
당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세 문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요. 현업에서 도커를 사용해 개발해오지는 않았어서 강의를 듣다가 의문이 들어서 문의 남김니다 다른 강의를 봤을때는 nginx, db, jar를 각각 만들어서 이미지들을 각각 격리하여 사용하고 상황에 따라 추가 생성하여 사용한다고 본거 같은데요 그렇게 사용하는데는 각각의 영역을 독립적으로 관리하기 위해서 한다고 봤구요 하나의 서버에서 직접 nginx+mysql+jar 설정등을 직접 하다가 도커 설정을 따로 이미지 만들어서 작업한다고 봤을때는 생소하기도 했습니다 근런데 강사님은 한꺼번에 한다고 말씀하시니 좀 헷갈리긴 하네요 현업에서는 주로 어떻게 쓰는건가요 ?
docker 실습을 위해서 Windows 환경에 WSL v2 버전 설치 후 docker를 올렸습니다. docker search 시에는 검색이 되는데 docker pull 을 하면 아래의 에러가 발생됩니다. "Error response from daemon: Get " https://registry-1.docker.io/v2/ ": net/http: TLS handshake timeout" 😢 인터넷에 찾아보니 인터넷 속도가 느려서라는데 인터넷 속도는 100Mbps로 늦을 이유가 없습니다. 혹시 다른 해결책이 있을까요? 실습이 불가능하여 이론 공부만 계속 하고 있어요 ㅠㅠ
강사님 강의 잘 듣고 있습니다. 다름이 아닌 저는 Windows 11 환경에서 docker-desktop을 설치하여 강의 및 실습을 진행중에 있는데, 호스트(윈도우)의 C:\docker\docker-practice 경로에 dockerfile(강사님 설정과 동일하여 정상 build도 가능)을 생성, 이외 영상처럼 app.txt 및 my-app이라는 폴더를 생성하여 강사님과 동일한 dockerfile 내용으로 copy 결과를 보려했습니다. 하지만 아무것도 copy되지 않음을 확인하였으며 해당 결과를 gpt에 확인 시, docker desktop에서 c드라이브 공유 설정을 확인하라는 답변이 돌아왔습니다 (settings의 resource -> file sharing 또는 resources의 Drives 탭). 하지만 gpt가 제시한 부분은 없는것인지, 제가 찾지 못하는 것인지는 불명확하나 해당 해결법은 docker-desktop에 없는 기능같아 보입니다. 혹시 관련 문제에 대한 답변 가능하실까요?