빌드 방식 설명에서 도커 파일을 작성해서 이미지 빌드 명령을 실행하면 도커가 임시 컨테이너를 실행하고 도커 파일에 정의된 작업을 수행 및 커밋하여 새로운 레이어를 생성하고 임시 컨테이너를 삭제한다. 이렇게 그림으로 되어있는데, 커밋을 했다는게 새로운 레이어가 포함된 이미지를 만들었다는 건가요? 임시 컨테이너 생성, 커밋, 임시 컨테이너 삭제가 반복 저 과정이 반복되는 거면 지시어 한 문장을 만날 때마다 수행 및 커밋하고 임시 컨테이너 삭제하고를 반복한다고 이해했는데, 이러면 지시어가 많을 수록 임시 컨테이너 생성, 삭제가 많이 반복되는 건가요?
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 Agent는 EC2에서 active 상태이고, S3에 업로드도 잘 되었으며, IAM 역할도 다음과 같이 설정했습니다: - EC2 인스턴스 역할: code-deploy-ec2-role (정책: code-deploy-ec2-policy 세부 S3 ) - CodeDeploy 서비스 역할: AWSCodeDeployRole 포함 하지만 배포 시 아래와 같은 에러가 납니다: > The overall deployment failed because too many individual instances failed deployment, or too few healthy instances... 추가로 EC2 내에서 /var/log/aws/codedeploy-agent/ 로그 폴더가 존재하지 않습니다. appspec.yml 및 start.sh 도 정상 포함했고, S3에 .tar.gz 도 업로드 확인했습니다.
안녕하세요! 강의 잘 들었습니다. 저는 여기에 추가로 rds로 db 연결, 그리고 Dockerfile 세팅작업에서 나아가 compose.yml로 nginx,redis 등 세팅 해주려 하는데 그것도 이 기본 세팅 위에서 작업하면 되는건가요..? 감사합니다. 그리고 단일 프로젝트에서는 codedeploy까지는 안해도 괜찮은 건지 궁금하고 추후 무중단 배포로 갈때는 blue/green 이런 전략을 찾아보고 채택하면 되는지 질문드립니다!
DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
argocd에서 sync를 하여 cd를 하게 되면, 몇초 이따가 STATE: ImageInspectError, STATE DETAILS: Failed to inspect image "": rpc error: code = Unknown desc = unable to convert a nil pointer to a runtime API image 라는 에러가 발생합니다. 여러 자료를 찾아보니 인증서 문제 같다고 하여서 호스트 PC에서 Harbor의 cicd-web-project:태그를 docker pull 하여 보니 tls: failed to verify certificate: x509: certificate signed by unknown authority 인증서 관련 에러가 발생하였습니다. 아무래도 자체 인증으로 인하여 Harbor 레지스트리에서 신뢰하지 못하는 CA 인증서를 사용하기 때문인 것 같은데, 강사님께서 강의를 하시기 이전에 이러한 문제가 생겨서 조치한 부분이 있으실까요? 아니면, 이 부분은 Docker 업데이트로 인하여 이제는 제가 따로 인증서를 구하여 적용을 해야할까요?? 추후에 프로젝트에서 쿠버네티스까지 적용할 예정이어서 argocd에 대한 테스트를 정확히 하고 싶은데, 지금은 눈으로 보고 넘어가고, 프로젝트를 할때, 제대로 된 인증서를 발급 받아서 붙이는게 나을까요?
저도 m1 mac 인데 제공해주신 이미지로 계속해서 exec /usr/local/tomcat/bin/ catalina.sh : invalid argument 해당 오류가 발생해서 직접 이미지(ubuntu:22.04 기반)를 만들어서 해결했습니다. 저랑 같으신분은 참고하시길 바랍니다. 이미지는 제 허브에 올려놔서 아래 명령어로 실행시키시고 강의내용 따라가면 저 같은 경우에는 해결되었습니다. (허브 링크) 강의 내용이랑 다른 점은 ssh 접속 비밀번호가 다르고 루트 디렉토리에 기본 Dockerfile이 없습니다. (직접 만드시면 됩니다) ssh 접속 root 패스워드 : rootpassword jenkins ssh 비밀번호 설정도 변경하셔야합니다. (mac m1만 해당 m2,m3... 는 모르겠습니다.) docker run --privileged --name ssh-docker-server -itd \ -p 10022:22 \ -p 8081:8080 \ -e container=docker \ -v /sys/fs/cgroup:/sys/fs/cgroup:rw \ --cgroupns=host \ chaewonjeong/ssh-docker-server:latest \ /usr/sbin/init
안녕하세요 강의 잘 봤습니다. 제가 토이프로젝트에서 작업했을 때는 깃허브에 직접 들어가 Pull requests 메뉴에 들어가서 버튼누르니까 자동으로 merge하고 테스트, 실행까지 다하던데 pull requests 역할이 무슨 뜻이고, 이것도 설정을 어떻게 하는건지 궁금합니다. 그리고 강의에서는 merge까지는 안 알려주시던데 deploy.yml에서 코드 작성하면 되는건가요?
안녕하세요 강의 잘 보고 있습니다. 예전 회사에서 깃허브 대신 Aws의 CodeCommit을 이용하여 코드 보관했는데 이때 git action이 사용가능한지 궁금합니다. 만약에 안되면 다른 방식으로 어떻게 CI/CD 를 구현하는지 궁금합니다. 하는 방법 링크좀 부탁드립니다 그리고 다른 회사들도 git hub 말고 svn 등 다른것도 쓸텐데 이때는 젠킨스를 쓸 수밖에 없는건지 궁금하네요
yml 을 anisble 서버에서 작성하였습니다 아울러 hello-world.war 도 ansible 서버에 생성되었습니다. 하지만, yml 에는 Dockerfile 등의 정보가 지정되어 있지 않습니다. 그렇다면 Dockerfile 은 어디서 가져오는지 궁금합니다. 좋은 강의 감사합니다.
안녕하세요 에러 해결 방식 공유할려고 올립니다 저는 맥북 m3 max 사용 중이고 저랑 비슷한 환경에 컨테이너만 실행시키면 계속해서 exec invalid argument 에러 증상이 자꾸 나서 애를 먹었습니다 해결방안은 docker-dind-arm64 공식 이미지를 받아서 docker run --privileged -itd -p 20023:22 -p 8083:8080 --name dind-arm64 \ docker@sha256:223d046021f324792db4fbd1396746b63ffb93f00861ea390d7fbbaf392585e4 컨테이너 접속 후 ssh, python 수동설치하고 앤서블 서버에서 키 복사하고요 플레이북으로 여기에 컨테이너 실행하니 잘 작동합니다 이상임. 도커허브 이미지 링크 https://hub.docker.com/layers/library/docker/dind/images/sha256-223d046021f324792db4fbd1396746b63ffb93f00861ea390d7fbbaf392585e4
안녕하세요! 컨테이너를 처음 실행했을 때는 컨테이너 레이어에는 아무 파일도 존재하지 않는건가요? 만약 처음 컨테이너 레이어에 아무 파일도 존재하지 않는다면 docker -it bin/bash로 컨테이너 내부로 들어가서 보는 파일들은 이미지의 파일들이고, 그 이미지의 파일을 수정하면 컨테이너 레이어로 해당 파일을 복사한 뒤에 수정사항을 반영하는 건가요?(CoW)
안녕하세요! 강의 유익하게 듣고 있는 수강생입니다. 컨테이너 가상화 설명에서 궁금증이 생겨 글 남깁니다. (강의 장면 캡쳐가 불가하여 유사 그림으로 대체합니다!!) 도커는 호스트 OS의 커널을 바로 사용한다는 장점이 있다고 이해했습니다. 이때 여기서 호스트 OS가 리눅스라고 명시되어있는데 mac, windows를 사용하는 일반 사용자들도 호스트 os가 리눅스로 적용되는 것일 까요?? 해당 내용을 찾아보니 도커를 사용할 때는 리눅스 커널이 필수적으로 필요해서 가상화된 Linux를 내부적으로 사용한다고 확인했습니다. 이 내용을 리눅스 환경이 아닌경우 도커 내부에 리눅스가 가상화 기술로 적용되어 있다고 이해하는 것이 맞을까요?? 내장되어 있는 것이 맞다면 컨테이너 별로 리눅스가 별도로 포함되는것인지, 도커위에 하나의 리눅스OS를 갖고 있는 것인지 질문드리고 싶습니다! 유익한 강의 정말 감사드립니다 😀
강의를 들으면서 프로젝트로 실습해보다가 궁금한 점이 생겨 질문드립니다! 강의에서는 main 브랜치에 push가 일어나는 것이 트리거가 되는 경우를 설명해주셨습니다. 만약에 main 브랜치 하위에 기능별로 브랜치를 나누어서 feature/login, feature/post 식으로 브랜치가 존재하며 프론트엔드 React 코드, 백엔드 Spring 코드의 별도 구분 없이 각각의 브랜치에 같이 존재한다면 백엔드 코드만 ec2에 deploy 되도록 설정하는 방법이 있을까요?