안녕하세요. 쉽고 재미있게 강의 만들어주셔서 잘 보며 공부하고 있습니다! 강의 듣던 중에 하나 궁금한 점이 있어서 질문을 남기게 됐는데요. 현재 Next.js로 프론트엔드 프로젝트를 하는데 AWS의 어떤 서비스로 배포를 하는게 좋을까 고민중입니다. 강의에서 EC2는 보통 백엔드에 사용한다고 하셔서요! S3는 보통 정적인 사이트를 배포할 때 사용하는 것으로 알고 있는데 SSR 서비스 배포 시에는 어떤 서비스로 배포하는걸 추천하시나요?
안녕하세요! 데브위키님! 우선 도커 강의를 잘 듣고 있고 너무 도움이 되는 강의라 강의를 만들어 주셔서 감사합니다! 세션 8의 VScode 컨테이너 내부에서 개발환경 구성 강의를 듣다가 궁금한 점이 생겼는데 dockerfile이 .devcontainer의 dockerfile과 leafy-front 파일의 dockerfile이 두 개가 있는데 강의에서처럼 VScode에 컨테이너 구성을 했을 때, leafy-front 파일의 dockerfile은 쓰이지 않는 것인지 또 실제 배포를 했을 땐, leafy-front 파일의 dockerfile이 사용되고 .devcontainer의 dockerfile은 사용이 안 되는 것인지 궁금합니다. 마지막으로 이 두 dockerfile은 서로에게 영향을 주진 않는지도 궁금합니다!
안녕하세요. 항상 좋은 강의 감사합니다. 현재 이 강의와 CI/CD 입문/실전 강의를 동시에 수강중입니다. 현재 강의로 배포하는 방법을 익힌 후 CI/CD 에서 배운것처럼 무중단 배포로 넘어가려고 하는데 문제가 생겨 질문드립니다... 강사님의 설명대로 할 땐 제대로 스프링부트 파일이 실행이 되었는데 개인프로젝트에 진행하려 하니 문제가 생겨서 문의드립니다. 각각의 개인 프로젝트마다 환경도 다르고 설정도 달라서 조언주시기 힘드실 수도 있을 것 같습니다. 한 이틀을 꼬박 매달려도 안되서 답답한 마음에 질문드립니다... ㅜㅜ 먼저, 현재 주어진 상황입니다 1.윈도우환경에서 실습중이고, putty를 활용하여 프로젝트를 진행중에 있습니다. 2. 프로젝트는 스프링부트+mysql (스프링시큐리티도 적용) aws의 인바운드규칙에 8080포트는 열어뒀습니다. 그리고 제가 작성한 도커파일과 compose.yml입니다. 운영환경에서 실행시킬거라 ENTRYPOINT를 추가했습니다. FROM openjdk:17-jdk COPY build/libs/*SNAPSHOT.jar /app.jar ENV SPRING_PROFILE="dev" ENTRYPOINT ["java", "-Dspring.profiles.active=${SPRING_PROFILE}", "-jar", "/app.jar"] services: my-server: build: . ports: - 8080:8080 depends_on: my-db: condition: service_healthy environment: - SPRING_PROFILES_ACTIVE=dev my-db: image: mysql environment: MYSQL_ROOT_PASSWORD: pwd1234 MYSQL_DATABASE: mydb volumes: - ./mysql_data:/var/lib/mysql ports: - 3306:3306 healthcheck: test: ["CMD", "mysqladmin", "ping"] interval: 5s retries: 10 이러고 docker compose up -d --build를 하면 이렇게 나옵니다. 처음엔 프로파일 설정하는 게 문제였는데 위와 같이 설정을 한 후로는 dev로 잘 인식하는 것 같은데 로그 찍히는게 이게 전부입니다. 시행착오 전엔 더 길게 찍히고 db접속되는내용도 나왔었는데 그 후론 이렇게 나오고 전부네요. 문제점은 일단 제 ec2의 퍼블릭ip:8080 으로 접속 시 접속이 안되는 점이 제일 큽니다. 제 빌드 파일이 그렇게 크지 않은 것 같습니다. 80mb정도 나오고, EC2는 용량을 30Gb로 설정을 해줬습니다. 그런데 너무너무 느려집니다. docker compose up -d --build 후에 너무너무 느려지고 명령어 하나 치기까지 너무 느려집니다. 모니터링 결과 cpu는 20~30 퍼센트 정도 사용으로 나옵니다. 그래서 인스턴스 재부팅도 여러번해봤지만 compose up만 하면 느려지네요,, 그래서 이 EC2 인스턴스로 연습을 많이 한 것 같아서 필요없는것들 지웠지만 그래도 너무 느려집니다. 그래서 새로 aws 계정을 파서 EC2 인스턴스를 만들어서 실행해봐도 느려지는 문제는 똑같습니다. 스프링시큐리티를 적용했기 때문에 처음 실행할 때 토큰이 나오면 로그인하려 하는데 아예 접속이 안되니 어떡해야할지 모르겠네요 ㅠㅠ.... 구글링과 gpt로 다 고쳐보고는 있는데 근본적인 문제가 어디일지 감이 안와서 혹시 예상되는 문제점이 있으실까 해서 여쭤봅니다 ㅠㅠ 감사합니다. p.s. 새로 만든 EC2 인스턴스에선 cpu사용률이 99퍼 찍었네요 ㅠㅠ 일단 이것부터 해결하고 오겠습니다...
kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx (algorithmMac) $ ls kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx (algorithmMac) $ mkdir mariadbEx_data kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx (algorithmMac) $ ls mariadbEx_data kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx (algorithmMac) $ cd mariadbEx_data kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx/mariadbEx_data (algorithmMac) $ vi empty.txt kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx/mariadbEx_data (algorithmMac) $ ls empty.txt $ docker run -v /Users/kimhj/desktop/bootProjectEx/dockerStudy/docker-mariadbEx/mariadbEx_data:/var/lib/mysql -e MARIADB_ROOT_PASSWORD=1234 -d -p 3307:3306 mariadb 68669f8d37eb3f6dcff172cca30174958796351621cda19cd0eeff502094f8a2 kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx/mariadbEx_data (algorithmMac) $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 68669f8d37eb mariadb "docker-entrypoint.s…" 5 seconds ago Up 5 seconds 0.0.0.0:3307->3306/tcp great_hawking 위 코드 처럼 디렉토리를 미리 생성하여 그 디렉토리에 empty.txt를 작성한 후 -v 옵션을 통해 실행시키니 강의의 흐름과 달리 디렉토리에 mariadb 관련 파일과 empty.txt 가 모두 존재하여 문의 드렸습니다 (개인 프로젝트 중 추가적인 공부 목적으로 이 강의를 듣고 있어서 mysql 대신 mariadb를 사용하였습니다)
안녕하세요. 틈틈히 강의를 듣고 있습니다. 질문 하나 있어서요. (Node.js, VSCode) 컨테이너 내부에서 개발환경 구성 강의 마지막 쯤에 볼륨은 마운트 된다고 하셨는데, 강의 상에서는 leafy/leafy-frontend 와 마운트 되더라구요. (컨테이너 안에서는 /workspace/leafy/leafy-frontend) 근데 혹시 이 마운트 되는 경로를 따로 설정으로 바꿀 수 있을거 같은데 .. 어떻게 하면 될까요? (예를 들면 leafy-frontend <-> /workspace/leafy-frontend 이렇게요.) 안녕하세요. 데브위키입니다. 강의에 포함된 내용이 아니더라도 강의를 듣다가 궁금하신 점이 생기시면 부담없이 편하게 질문해주세요. 실습에 오류가 발생했거나 명령어가 예상한대로 실행되지 않으신 경우 사용하시는 OS 환경과 화면을 캡처해서 보내주시면 빠르고 자세하게 답변을 드릴 수 있습니다. 질문은 가능한 빠르게 답변 드리겠습니다. 😀 감사합니다.
이미지 레지스트리 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.
안녕하세요. 윈도우 powershell 이용해서 이미지 commit 예제를 하던 중 오류가 나서 질문드립니다. 이렇게 docker commit requires at least 1 and at most 2 arguments. 가 발생하는데 어떻게 해결할 수 있을까요? +) git bash로 실행하니까 오류 사라졌습니다!
안녕하세요 데브위키님 강의 수강 중 궁금한 점이 있어 질문 드립니다. 제가 지식이 얕아 틀릴 확률이 매우 큰데 저의 생각이 맞았는지 틀렸다면 지적도 부탁드립니다! 클라우트 네이티브 애플리케이션에서의 MSA는 수평 확장이 용이하다고 PART5에서 이해했습니다. 만약 DB 서버를 늘려야 한다고 했을 때 현재 강의에서처럼 Postgre를 도커 볼륨을 사용하여 이중화 DB를 사용한다면 AWS에서 새로운 인스턴스를 만들어서 도커를 설치하고 컨테이너를 만들게 되면 기존 서버의 도커 볼륨에 있는 데이터를 알 수 없어 서버를 늘리기가 힘들다고 생각합니다. 당연히 방법이 있을 것 같은데 확장을 하게 된다면 어떤 방식으로 확장을 하게 되는 건지 질문드립니다!
안녕하세요, 5-4 PostgreSQL 컨테이너 구성 강의 중 질문이 있어서요. PostgreSQL 컨테이너 생성하기 위해 Dockerfile을 만드는 과정 중에 계정정보 설정을 하기위해 ENV POSTGRES_USER / PASSWORD 등등을 진행했는데, PostgreSQL 에서 계정 정보를 설정하기 위해서는 POSTGRES_USER , POSTGRESL_PASSWORD 등을 설정해야 한다는 기본적인 정보는 어디서 확인 가능할까요? 만약 다른 이미지(예를 들면 mysql)를 가져와서 사용한다면 저런 설정 가능한 것들은 알아야 할거 같은데 어딜 참고해야 할지 모르겠어서요. 그냥 기본 postgres:13 이미지를 다운 받아서 docker image inspect postgres:13 명령어 실행해도 POSTGRES_USER 등등은 안보이네요. @_@;
멀티스테이지에서 java 코드 빌드하는 컨테이너, jar파일 실행하는 컨테이너를 나눈다고 말씀해주셨어요! 이 과정에서 dockerfile을 통해 build하면, 각 컨테이너에 대한 이미지가 2벌 생성될것이라고 예상했는데 실행하는 부분만 이미지가 생성되는 이유를 알고싶습니다..!!
실습 저의 개인 맥북 PC에서 Nestjs 서버를 돌리고 있고 Nestjs에서 첨부한 사진과 같이 docker컨테이너로 mysql을 실행 시켜 늘 localhost 로 hosturl을 연결해서 사용 했습니다. 이 경우에는 왜 컨테이너 id를 url로 사용하지 않아도 사용이 된걸까요 ? 컨테이너로 nestjs를 돌리는게 아니라 외부 연결로 간주되어 그런걸까요 ..?