묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨개발자를 위한 쉬운 도커
섹션4. 이미지 빌드에서 이미지 커밋이 안되는 현상이 있어 문의드립니다.
안녕하세요. 강의에서 말씀하신 docker commit -m "edited index.html by devwiki" -c 'CMD ["nginx", "-g", "daemon off;"]' officialNginx kimminho0428/commitnginx:1.0위의 커맨드로 official Nginx 커밋을 시도했으나 commit이 되지 않아 문의드립니다.docker ps 명령어로 확인할 때 nginx 컨테이너는 실행 중이나 이런 현상이 발생했습니다.문법상의 오류로 보이는데 답변부탁드립니다.감사합니다.
-
해결됨AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
캐싱 관련 질문 드립니다.
선생님 안녕하세요.MongoDB에 이어 infra 관련 강의도 잘 수강하고 있습니다.캐싱 관련되어 선생님 의견이 궁금해 질문드립니다. 백그라운드현재 MongoDB + Nest.JS를 사용해 WAS를 구축한 상태입니다.도큐먼트 안에 서브 도큐먼트들이 array 형태로 들어가도록 Model을 설계했는데요, 서브 도큐먼트를 가져올 때 aggregation을 사용해 페이지네이션을 적용했습니다.(처음에 설계 시, 잘 못 생각해 이러한 설계를 하긴 했습니다..)aggregation에는 성능 문제가 따라올 위험이 있을까봐 해당 GET 요청 컨트롤러에는 캐싱을 적용했습니다.문제가 되는 부분은 캐싱처리로 인한 코드의 가독성 저하 입니다.WAS안에서 GET 요청 시 캐싱을 적용하고, POST, PUT, PATCH 요청시에는 캐싱을 지우고 있는데, 비즈니스 로직안에서 이를 처리하다보니 코드의 가독성이 급격히 떨어지더라고요. 제가 생각한 해결 방안이를 해결하기 위해 event emitter를 사용해 캐싱을 비즈니스 로직으로부터 떼어낼까 고민했습니다.다만 이 해결방안은 캐싱처리하는 로직 자체가 하나의 WAS에 존재하고 있어 추후에 또 비슷한 문제가 발생하지 않을까 생각이 들더라고요. 질문선생님께서는 이러한 문제 발생 시 캐싱 처리는 프록시 서버를 띄워서 앞단에서 미리 처리를 하시는지... 아니면 또 다른 좋은 방식으로 설계를 하시는지 궁금해서 질문드립니다.
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
create certificate 할때요..!
Attempting to validate your cerificate... 상태에서 아무리 기다려도 Valid 상태로 넘어가지지가 않습니다.이런경우는 어떤 경우인가요?
-
해결됨개발자를 위한 쉬운 도커
leafy-front end 부분 여쭤볼게 있습니다.
안녕하세요 docker 수업 잘 듣고 있습니다.다름이 아니라 frontend 부분 빌드한 후 /app/dist -> /usr/share/nginx/html하게 되면 404 error 가 뜨게 됩니다.conf file 에서 경로를 못찾는게 아닐까 합니다...그래서 확인해본 봐로는 /etc/nginx/nginx.confhttp { server { listen 80; # 삭제 가능 server_name localhost; #삭제 가능 location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html; } }을 삽입 하면 잘 됩니다. 혹시 강의 하신 내용에서는 이부분이 없느데도 잘 작동하는데 이유를 알 수 있을까 해서 질문 드립니다.감사합니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
안녕하세요 마지막 강의 질문 있습니다.
git actions에서 EB에 배포전에,docker hub에 이미지를 미리 배포하고,그 배포된 docker image 파일을 EB에서 실행한다고한다면,결국 Dockerrun.aws.json 파일만 EB에 배포하면 되는 것 아닌가요?- name: Generate deployment package run: zip -r deploy.zip . -x '*.git*'해당 코드는 소스파일과 그외 파일까지 전부 압축해서 S3에 업로드하자나요? Dockerr.aws.json 파일만 첨부해서는 작동이 안되나요?
-
해결됨개발자를 위한 쉬운 도커
도커파일 생성 에러
Dockerfile-000 이런식으로 파일명을 만들때 Dockerfile-basic까지는 빌드까지 완료하고 이미지로 만들었는데 Dockerfile-meta 만들때 갑자기 파일이 도커파일이 아닌 일반파일로 바껴서 빌드도 안되는데 뭐가 문제인걸까요?
-
해결됨개발자를 위한 쉬운 도커
명령어 종류에 따른 동작에 대해 질문이 있습니다.
안녕하세요. 컨테이너 동작에 대한 명령어 run/start에 대해 질문이 있습니다.두 명령어 다 -i옵션이 있지만 run명령어는 기본적으로 쉘에 컨테이너의 stdin을 잡는 반면 start명령어는 잡지않는것으로 보여서 옵션을 찾아보니 두 명령어 모두 -i옵션이 있긴한것으로 확인했습니다. 하지만 설명에 stdin을 잡아놓지 않은 경우에 옵션이 유효하다고 명시되어 있는것도 확인했는데,두 명령어에 대한 interactive 기본값이 다른것으로 해석하면 되는지가 궁금합니다.
-
해결됨개발자를 위한 쉬운 도커
사용자 로그인 정보 확인
강의 영상처럼 docker login 명령으로 로그인후 cat 명령어로 정보를 확인하려고 했지만 해당 파일이나 폴더가 없다고 나옵니다. 맥을 쓰고 있는데 저장경로가 달라서 그런걸까요?
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
ssh 터널링으로 vm 접속이 안됩니다.
안녕하세요.며칠 전에 올린 질문 내용과 동일합니다.rsa 키 삭제 후 다시 만들어서 lightsail 터미널에서 authorized_keys에 새로운 rsa.pub 키를 넣어서 다시 접속해봤는데도 접속이 거부됩니다.아무리 찾아보고 권한도 600으로 줘봤지만 해결이 되지 않습니다. 진도를 못 나가고 있는데 도와주세요..ㅠㅠ
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
[배포용 Workflow 만들기] 에러 해결과 아직 남은 에러
에러 해결 infogithub secres 에 SSH_PRIVATE_KEY 저장할때 로컬에서$ cat ~/.ssh/github_id_rsa (뒤에 pub 없는거 )이렇게 조회 한걸 저장 해야 deploy.yml 에서 ssh 연결시에 인증 정보 틀림에 의한 에러가 발생하지 않았습니다 run: | ssh ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_PUBLIC_IP }} " cd sample_express git pull || exit 1 npm install || exit 1 npm run build sudo pkill node || exit 1 sudo npm run start & npx wait-on http://localhost exit "그런데 아직 에러가 남아 있는데 코드가 반영된 이후에 에러가 발생 합니다.ex)에러가 발생한 코드name: deployon: push: branches: - mainjobs: deploy: runs-on: ubuntu-latest steps: - name: Set up SSH run: | mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa - name: Set up known hosts run: | echo "${{ secrets.SSH_KNOWN_HOSTS }}" >> ~/.ssh/known_hosts chmod 644 ~/.ssh/known_hosts - name: SSH and deploy run: | ssh ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_PUBLIC_IP }} " cd sample-express2 sudo chown ubuntu:root .git/FETCH_HEAD sudo chmod +w .git/FETCH_HEAD chmod +w .git/FETCH_HEAD git pull || exit 1 npm install || exit 1 npm audit fix npm run build sudo pkill node || exit 1 sudo npm run start & npx wait-on http://localhost exit "
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
deploy.yml이 workflow에서 작동되지 않는 이유
섹션 4의 "배포용 Workflow 만들기"를 수강 중 deploy.yml이 진행되지 않습니다..test.yml은 진행이 잘 됩니다뭐가 문제일까요?.yml 파일 작성할 때 들여쓰기가 상관이 있나요?아래는 작성한 deploy.yml 파일입니다.추가로 한 탭씩 들여쓰기 하지 않고 중간 중간에 스페이스 두 번으로 들여쓰기 하는게 있는데, 규칙인가요?- (대시)기호 이것도 규칙인가요? 안 적으면 실행이 안되는건가요? name: deploy on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - name: Set up SSH run: | mkdir -p ~/.ssh/ echo "${{secrets.SSH_PRIVATE_KEY}}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa - name: Set up known hosts run: | echo "${{secrets.SSH_KNOWN_HOSTS}}" >> ~/.ssh/known_hosts chmod 644 ~/.ssh/known_hosts - name: SSH and deploy run: | ssh ${{secrets.SSH_USERNAME}}@${{secrets.SSH_PUBLIC_IP}} " cd express git pull || exit 1 npm install || exit 1 npm run build || exit 1 sudo pkill node || exit 1 sudo npm run start & || exit 1 sudo npm run start & npx wait-on http://localhost exit "
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
SSH 터널링으로 Lightsail VM 접속하기
안녕하세요..! 또 질문을 드려서 너무 죄송합니다.authorized_keys에 제가 만든 public 키를 추가를 해줬는데 터미널로 접속하려고 하니까 아래와 같이 접속이 거부됩니다..! 혹시나 키를 잘못 기입했나 해서 다시 복사해서 넣었는데도 저렇게 거부가 되는데 다른 이유가 있을까요?너무 죄송합니다..!!답변주시면 정말 감사드리겠습니다!
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
workflows 내용 질문입니다.
안녕하세요. 강의 잘 보고 잘 따라가고 있습니다! 우선 좋은 강의 제공해주셔서 감사 인사 드립니다!AWS lightsail 부분 수강하고 있는 와중에 workflows 내용에 대한 질문이 생겼습니다.여기 내용을 보면 npm 설치와 redis 설치가 포함되어있는데 저렇게 설치를 하는 곳은 가상 ubuntu 서버에 하는 거라고 보면 될까요? 이미 AWS lightsail 서버에는 node와 npm 및 redis 설치를 다 끝냈는데 매번 pull request 할 때마다 다시 설치가 되는건가 궁금합니다!같은 맥락으로 도커 이미지를 나중에 만들어서 빌드를 하게 된다면 매번 수정된 내용이 반영되는 이미지를 다시 만들어서 그 이미지를 빌드해서 배포를 하는 건가요? 질문은 이 정도로 마치겠습니다! 긴 질문 읽어주셔서 감사합니다.
-
해결됨개발자를 위한 쉬운 도커
컨테이너 런타임에 관한 질문이 있습니다.
컨테이너 런타임은 컨테이너를 생성 혹은 제거할때에만 관여하는건가요??
-
해결됨개발자를 위한 쉬운 도커
leafy 애플리케이션 구성 강의중 db 문제
안녕하세요, 강의 잘 수강하고 있습니다.강의중 db를 실행시키고 10분이자나도 ready가 안 된다면어떠한 문제가 있는 건가요?두세번 반복해서 실행해도 올라오지 않습니다.
-
해결됨개발자를 위한 쉬운 도커
컨테이너 포트 질문
도커 컨테이너 3개 모두 포트 번호가 다 똑같던데 클라이언트가 만약에 도메인:80번포트를 요청하면 어디로 요청이 가는건가요?
-
미해결개발자를 위한 쉬운 도커
맥에서는 도커를 어떻게 사용하는건가요?
맥에서 iterm에 접속하고 docker -version을 치면 docker server의 os가 linux로 나와있어서 그때부터 의문점이 생겨 질문드립니다. 도커가 리눅스 커널(Namespace, Cgroups)를 활용하여 컨테이너를 만들고 관리하는 것 같습니다. 그런데 맥에서는 어떻게 이게 가능한건지 궁금합니다. 제 예상으로는 도커 데스크탑이 어떤 기술에 의해 리눅스명령을 도커에 실행하면 도커가 명령을 받고 필요한 시스템 콜을 요청할때 도커 데스크탑이 맥 os가 알아들을 수 있게 변환작업을 하는 것같은데 맞는 걸까요?
-
해결됨AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
AWS Security Groups 접근시에 AuthFailure 에러가 발생합니다
강사님의 강의를 들으면서 모든 과정 에러없이 다 따라서 진행하였습니다. 완강을 하고 기존에 제가 따로 운영하던 프로젝트를 EC2에서 ECS 배포로 변경하는 작업을 진행하였습니다.제 프로젝트에 ECS 배포와 Github Action 등이 정상적으로 적용된것을 확인하고 강의에서 진행하셨던 리소스들(express-ecs.com)에 대한 cluster, loadbalancer, task definition 등을 삭제하였습니다. 또한, IAM 롤에 대해서도 삭제를 하였는데 해당 리소스들을 삭제한 직후에 발생한 에러인지는 정확히 파악을 못 하였으나 그 이후로 갑자기 제가 자체적으로 만든(newdok) 로드밸런서의 Listener, Security Group에 대해서 접근 에러가 발생하였습니다. 여기까지가 현재 발생한 문제점이고 해당 내용들에 대한 2가지 질문이 있습니다.질문 1위 사진들을 보시면 AuthFail 에러가 발생하는데 여러 해결법들을 검색해보고 액세스 키도 새로 발급해보고 IAM 권한도 admin으로 설정해보고 여러 시도를 하였으나 해결을 하지 못하였습니다. 문제는 아무 서버와도 연결되지 않은 깡통 로드밸런서(test-lb)을 생성하여 리스너와 보안그룹을 지정해주면 해당 로드밸런서에 대해서는 AuthFail에러가 발생하지 않습니다. 만약, AWS 인증 문제라면 제가 관리하고 있는 모든 자원에 대해서 Security Group 접근 에러가 발생해야 하는데 해당 로드밸런서(newdok-lb)에 대해서만 에러가 발생하는 이유를 잘 모르겠습니다. 질문 2두 번째 질문은 ECS Task Container의 Health Check에 대해서입니다. 첫 번째 질문에서 언급했던 에러가 발생함에도 로드 밸런서 접속(HTTP만), 연결한 도메인에 대한 접속(HTTP, HTTPS)은 정상적으로 되고 있는 상황입니다. 실제로도 ECS Cluster에 들어가보면 cluster, service, 심지어 task까지 정상적으로 작동 및 Health 상태를 반환합니다.하지만, 마지막 사진을 보시면 Task을 들어갔을때, Container에서 Healthy가 아니라 Unknown 상태를 반환합니다. Unhealthy가 아니라 Unknown 반환의 경우 어떤 문제일까요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
TravisCI에서 계속 에러가 납니다....
일단 ElasticbeanStalk에서는 상태가 Travis연결 시도 전에는 Pending, 연결 시도 후에는 No data가 뜹니다. 제 .travis.yml 파일 코드는 다음과 같습니다 sudo: required language: generic services: - docker before_install: - echo "start creating an image with dockerfile" - docker build -t minseokkim6823/docker-react-app -f Dockerfile.dev ./ script: - docker run -e CI=true minseokkim6823/docker-react-app npm run test -- --coverage deploy: provider: elasticbeanstalk edge: true region: "ap-northeast-2" app: "docker-react-app" env: "Docker-react-app-env-1" bucket_name: "elasticbeanstalk-ap-northeast-2-845428038664" bucket_path: "docker-react-app" on: branch: master access_key_id: $AWS_ACCESS_KEY secret_access_key: $AWS_SECRET_ACCESS_KEY 이 결과 travis ci 에서이런 결과가 계속나옵니다..... 무엇이 문제 일까요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
buildkit 관련 문의
Docker Engine v24.0.7 을 사용중입니다.아래의 다른 분들처럼 DockerEngine 에서 설정으로 넣어도적용 및 restart 해도 강의와 다른결과가 나옵니다.