강의를 들으면서 프로젝트로 실습해보다가 궁금한 점이 생겨 질문드립니다! 강의에서는 main 브랜치에 push가 일어나는 것이 트리거가 되는 경우를 설명해주셨습니다. 만약에 main 브랜치 하위에 기능별로 브랜치를 나누어서 feature/login, feature/post 식으로 브랜치가 존재하며 프론트엔드 React 코드, 백엔드 Spring 코드의 별도 구분 없이 각각의 브랜치에 같이 존재한다면 백엔드 코드만 ec2에 deploy 되도록 설정하는 방법이 있을까요?
안녕하세요. CICD강의 잘보고있습니다. [실습] 컨테이너 기반 + 확장성을 고려한 프로젝트에서 많이 쓰는 CI/CD 구축 방법 까지 잘 진행해서 배포까지 완료했습니다. scripts > start-server.sh 에서 질문이 있는데요 docker pull {ECR Repository 주소} /instagram-server:latest 여기서 에러가 나서 정상적인 docker image를 pull받지 못합니다. 제가 작성한 코드입니다. docker pull {EC2소유자}.dkr.ecr.ap-northeast-2.amazonaws.com/github-actions:latest 발생 에러 코드입니다. [stderr]Error response from daemon: Head " https:// {EC2소유자} .dkr.ecr.ap-northeast-2.amazonaws.com/v2/github-actions/manifests/latest ": no basic auth credentials 감사합니다.
파일을 불러오는 중 오류가 발생했습니다. 파일을 찾지 못했습니다. 파일이 존재하지 않거나 읽기 권한이 없습니다. 라고 뜨는데, 파일이 없는 거 아닌가요? 권한은 전부 부여되어있는 상태입니다. 그리고 보니까 이미지 상으로는 diagrams.net 인데 지금은 draw.io 로 바뀌어있더라고요. 이거 관련해서 관리자분이 설정을 따로 해주셔야 하는 거 아닌지... 조심스럽게 확인 요청 드립니다.
ec2 여러대에서 각각 jenkins, ansible 등등을 host 에 직접 설치하는 특별한 이유가 있을까요? ec2 각각 안에서도 그냥 docker 로 띄워도 되지 않나요? 특별한 이유가 있는지, 어떤 수업의 방향성 때문인지, 장단 등등에 대해서 궁금합니다. 좋은 강의 감사합니다.
안녕하세요 좋은 강의 감사합니다. docker run --privileged --name jenkins-node1 -itd -p 30022:22 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns=host edowon0623/docker-server:m1 /usr/sbin/init 로 접속한 후에요. docker ps -a | grep jenkins-node 잘 떠있는 것 확인한 후에 ssh root@localhost -p 3022 로 접근하면 P@ssw0rd 패스워드 입력하잖아요? 그 패스워드는 강의 선생님께서 해당 도커 이미지 생성하실 때 root / P@ssw0rd 로 설정을 하신 건가요? 미리 감사드립니다.
우선 레포만 생성하는 workflow는 성공하였으며, slack 기능을 추가하는 과정에서 오류를 겪고 있습니다. gh repo create oddong-action/${{ inputs.prefix }}-${{ inputs.name }} --public --add-readme 새로운 레포를 만드는 명령 수행 시에 아래와 같이 권한 오류가 발생하고 있습니다. 어떤 설정을 추가로 해주어야 할지 문의드립니다.
안녕하세요! 도커의 사용목적에 대해 알고싶습니다. 도커가 편리한 이유는 여러 프로그램을 한 대의 컴퓨터에서 실행시킬 수 있기 때문이라고 이해하였습니다. 그런데 만약 서버 한 개만 돌릴 때는 도커를 사용해야 할 필연성이 있을까요? 단순히 확장성 떄문에 사용하는 건가요? 왜 써야 하는지 잘 모르겠습니다..
안녕하세요 docker run --privileged -itd --name ansible-server -p 20022:22 -p 8082:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/ansible-server:m1 /usr/sbin/init 위 명령어로 도커 이미지 설치 후 ssh 로 접속해서 패스워드 치고 들어가면, ansible --version 이 먹히지 않는 것으로 보면 ansible 이 설치가 되어있지 않은 것 같아요. 참고로 저는 맥 m1 OS 입니다.
안녕하세요 우선 저는 gradle 로 진행을 했습니다. 다른건 다 동일하게 했고 젠킨스 도커 안에 들어가서 cd /var/jenkins_home/workspace/My-Third-Proejct nohup java -jar build/libs/jenkins_cicd_project-0.0.1-SNAPSHOT.jar --server.port=9000 --server.address=0.0.0.0 > app.log 2>&1 & 로 실행을 하면 브라우저에서 localhost:9000 으로 접근이 잘 됩니다. 그런데 젠킨스 스크립트로 실행을 하게 되면 젠킨스 도커 내의 로그를 확인해보면 계속 꺼져요. 이유가 있을까요? 젠킨스 구성 설정의 shell script 는 아래와 같아요. # 기존 프로세스 종료 PID=$(ps -ef | grep "jenkins_cicd_project-0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}') if [ ! -z "$PID" ]; then echo "종료 중인 애플리케이션 PID: $PID" kill -15 $PID sleep 5 fi # 새 프로세스 시작 (setsid 사용하여 별도 세션에서 실행) echo "애플리케이션 시작 중..." setsid nohup java -jar build/libs/jenkins_cicd_project-0.0.1-SNAPSHOT.jar --server.port=9000 --server.address=0.0.0.0 > app.log 2>&1 & APP_PID=$! echo "애플리케이션 PID: $APP_PID" # 시작 확인 sleep 10 ps -p $APP_PID > /dev/null if [ $? -eq 0 ]; then echo "애플리케이션이 PID $APP_PID로 실행 중입니다." curl -s http://localhost:9000 > /dev/null if [ $? -eq 0 ]; then echo "애플리케이션에 정상적으로 접근할 수 있습니다." else echo "애플리케이션 접근 테스트 실패!" fi else echo "애플리케이션 시작 실패!" exit 1 fi 그리고 젠킨스 빌드 console out 도 아래와 같습니다.Started by user 허강준 Running as SYSTEM Building in workspace /var/jenkins_home/workspace/My-Third-Proejct The recommended git tool is: NONE No credentials specified > git rev-parse --resolve-git-dir /var/jenkins_home/workspace/My-Third-Proejct/.git # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url https://github.com/Highjune/jenkins_cicde_project.git # timeout=10 Fetching upstream changes from https://github.com/Highjune/jenkins_cicde_project.git > git --version # timeout=10 > git --version # 'git version 2.39.5' > git fetch --tags --force --progress -- https://github.com/Highjune/jenkins_cicde_project.git +refs/heads/*:refs/remotes/origin/* # timeout=10 > git rev-parse refs/remotes/origin/main^{commit} # timeout=10 Checking out Revision 6353899ff277302005bce6da4d498211ebeab06b (refs/remotes/origin/main) > git config core.sparsecheckout # timeout=10 > git checkout -f 6353899ff277302005bce6da4d498211ebeab06b # timeout=10 Commit message: "포트번호 수정" > git rev-list --no-walk 6353899ff277302005bce6da4d498211ebeab06b # timeout=10 [My-Third-Proejct] $ /bin/sh -xe /tmp/jenkins9188074144619929309.sh + ps -ef + grep jenkins_cicd_project-0.0.1-SNAPSHOT.jar + grep -v grep + awk {print $2} + PID=283 + [ ! -z 283 ] + echo 종료 중인 애플리케이션 PID: 283 종료 중인 애플리케이션 PID: 283 + kill -15 283 + sleep 5 + echo 애플리케이션 시작 중... 애플리케이션 시작 중... + APP_PID=420 + echo 애플리케이션 PID: 420 애플리케이션 PID: 420 + sleep 10 + setsid nohup java -jar build/libs/jenkins_cicd_project-0.0.1-SNAPSHOT.jar --server.port=9000 --server.address=0.0.0.0 + ps -p 420 + [ 0 -eq 0 ] + echo 애플리케이션이 PID 420로 실행 중입니다. 애플리케이션이 PID 420로 실행 중입니다. + curl -s http://localhost:9000 + [ 0 -eq 0 ] + echo 애플리케이션에 정상적으로 접근할 수 있습니다. 애플리케이션에 정상적으로 접근할 수 있습니다. Finished: SUCCESS 그런데 계속 Graceful shutdown complete 가 뜹니다. 참고로 다른 포트랑 충돌같은 것은 없습니다 원래 8081로 진행하다가 일부러 다른 포트로 시도해보려고 9000으로 했습니다. 이렇게 젠킨스 내 컨테이너 내에서 수동 실행하면 되는데 왜 젠킨스 빌드로 하면 꺼지는 걸까요? 참고로 젠킨스 도커 실행 명령어는 아래와 같습니다. docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 9000:9000 -p 50000:50000 --restart=on-failure --name jenkins-server jenkins/jenkins:lts-jdk21
안녕하세요 강사님, 현재 강의를 참고하여 팀원끼리 클론 코딩 프로젝트를 하기위해 EC2에서 Spring Boot + MySQL 서비스를 Docker Compose로 구성하여 배포 중입니다. GitHub Actions를 통해 ECR에 푸시한 Spring Boot 이미지를 EC2에서 pull 받아서 docker-compose로 실행하는 파이프라인을 구축했습니다. 현재까지 진행한 작업에 대해 말씀드리겠습니다. Spring Boot 애플리케이션을 Dockerfile로 빌드해 Amazon ECR에 업로드 EC2에 MySQL과 Spring Boot를 각각 컨테이너로 구성 ( docker-compose.yml 사용) GitHub Actions에서 EC2로 SSH 접속 후 .env 생성 및 docker-compose up -d 자동 실행 설정 현재 EC2 인스턴스(t2.micro)에 연결이 실패하고있습니다. ssh -v -i를 통해 로그를 확인 해본 결과 연결은 성공하지만 인증 전 또는 핸드쉐이크 중에 connection reset 이 발생하였다고 합니다. 현재 인스턴스 유형은 t2.micro이며, Docker로 2개 컨테이너가 실행 중이었습니다. CPU/RAM 자원이 부족해 SSH 연결도 거부되는 것 아닌가 의심됩니다. 혹시 이 경우 인스턴스 유형을 업그레이드를 하는게 해결방법일지 혹은 다른 방법이 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. Ansible을 이용한 Docker 이미지 관리 강의에서 create-cicd-devops-image.yml에 작성한 스크립트로 playbook 실행 시 Docker Hub에 Push하는 과정에서 무한로딩이 걸리는데 원인을 찾을 수 없어서 질문드립니다.. Docker Hub 로그인도 성공하였고 스크립트에 저의 계정 이름/cicd-project-ansible로도 잘 작성하였고 수동으로 push 명령어를 내려주면 Docker Hub에 이미지가 잘 띄어지긴 합니다. 수동으로 명령어를 내려주면 잘 작동하지만 왜 playbook으로는 push과정에서 무한로딩이 걸리는지 모르겠습니다 [root@0c03fe2051d5 ~]# ansible-playbook -i hosts create-cicd-devops-image.yml --limit 172.17.0.4 PLAY [all] ************************************************************************************************************* TASK [Gathering Facts] ************************************************************************************************* ok: [172.17.0.4] TASK [Login to Docker Hub] ********************************************************************************************* changed: [172.17.0.4] TASK [create a docker image with deployed waf file] ******************************************************************** changed: [172.17.0.4] TASK [push the image on Docker Hub] ************************************************************************************ .... 무한로딩
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. PS C:\Users\user> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b7834a16e0a edowon0623/docker:latest "/sbin/init systemct…" 56 minutes ago Up 56 minutes 0.0.0.0:10022->22/tcp, 0.0.0.0:8081->8080/tcp docker-server f762097105dd jenkins/jenkins:lts-jdk17 "/usr/bin/tini -- /u…" 2 days ago Up 3 hours 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jekins-server docker 컨테이너 상태는 Up상태입니다. ssh root@localhost -p 10022 명령어 입력후 비밀번호는 강좌 밑에 있는 비밀번호를 입력하였는데도 계속 denied를 당하고 있습니다. 해결 방법이 있을까요? (현재 사용중인 OS는 window 11 )
docker-compose up -d 할때 leafy_leafy-front_1가 자꾸 꺼지고 restart 되는게 반복되는데 docker logs leafy_leafy-front_1 를로 확인해본결과 exec /usr/local/bin/ docker-entrypoint.sh : no such file or directory 라는 오류가 있네요 윈도우로 수업 들을때는 문제없었는데 aws ec2 아마존 리눅스 에서 돌려보니 해당 오류가 계속 생겨서 질문드립니다 검색 및 예전 답변을 참고해서 crlf 를 lf 로 바꿔도보고 새로 clone 해보고 했는데 여전히 오류 입니다. 윈도우에서는 되다가 오히려 리눅스 환경에서 안되는게 이유를 모르겠습니다 ㅠㅠ 답변 부탁합니다