묻고 답해요
150만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
notion 수업자료
따로 pdf 변환하여 다운로드는 안되나요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ec2 여러대에서 각각 직접 설치 이유
ec2 여러대에서 각각 jenkins, ansible 등등을 host 에 직접 설치하는 특별한 이유가 있을까요?ec2 각각 안에서도 그냥 docker 로 띄워도 되지 않나요? 특별한 이유가 있는지, 어떤 수업의 방향성 때문인지, 장단 등등에 대해서 궁금합니다. 좋은 강의 감사합니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
P@ssw0rd 설정시기
안녕하세요 좋은 강의 감사합니다. 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 로 설정을 하신 건가요? 미리 감사드립니다.
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
깃헙 레포 생성 자동화 구성하기 2 관련 질문드립니다.
우선 레포만 생성하는 workflow는 성공하였으며, slack 기능을 추가하는 과정에서 오류를 겪고 있습니다.gh repo create oddong-action/${{ inputs.prefix }}-${{ inputs.name }} --public --add-readme새로운 레포를 만드는 명령 수행 시에 아래와 같이 권한 오류가 발생하고 있습니다.어떤 설정을 추가로 해주어야 할지 문의드립니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
도커를 이용한 배포
안녕하세요! 도커의 사용목적에 대해 알고싶습니다. 도커가 편리한 이유는 여러 프로그램을 한 대의 컴퓨터에서 실행시킬 수 있기 때문이라고 이해하였습니다. 그런데 만약 서버 한 개만 돌릴 때는 도커를 사용해야 할 필연성이 있을까요? 단순히 확장성 떄문에 사용하는 건가요? 왜 써야 하는지 잘 모르겠습니다..
-
미해결애플리케이션 배포 자동화와 CI/CD
안녕하세요
안녕하세요 선생님젠킨스 도커로 설치후 실행하면 이런 로딩에서 안넘어가는데 어떻게 하면 좋을까요..? 로컬에서 했을때는 비밀번호 치는걸로 바로 넘어가는데..감사합니다!
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ansible 원리
ansible copy 같은 모듈 명령어를 사용할 때요대상으로 하는 서버들에서 방화벽과 같은 그런것들을 미리 열어줘야 하고 그런 것들은 없을까요?물론 미리 ping 을 통해서 확인할 수는 있겠지만요!ansible 의 동작 원리가 궁금합니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ansible 존재여부
안녕하세요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 입니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
젠킨스 빌드 성공후 shutdown
안녕하세요 우선 저는 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
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
failed to connect to your instance
안녕하세요 강사님,현재 강의를 참고하여 팀원끼리 클론 코딩 프로젝트를 하기위해 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 연결도 거부되는 것 아닌가 의심됩니다. 혹시 이 경우 인스턴스 유형을 업그레이드를 하는게 해결방법일지 혹은 다른 방법이 있을까요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
Docker compose 관련 공유
강의 내용 똑같이 따라해봐도 redis, node 버전 관련 문제로 실행할 수 없었습니다..!저는 아래 코드로 테스트 성공했으니 참고 부탁드려요! Dockerfile >>>> node version 16 FROM node:16 WORKDIR /usr/src/app COPY ./ ./ RUN npm install CMD [ "node", "server.js" ] package.json>>> redis version 4.7.0{ "name": "nodejs-docker-compose-app", "version": "1.0.0", "main": "server.js", "scripts": { "start": "node server.js", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "express": "4.17.1", "redis": "4.7.0" }, "author": "", "license": "ISC", "description": "" } docker-compose.ymlversion: "3" services: redis-server: image: redis container_name: redis-server restart: unless-stopped expose: - 6379 node-app: depends_on: - redis-server build: context: . dockerfile: Dockerfile container_name: node-app restart: on-failure ports: - "8081:8080" server.jsconst express = require("express"); const redis = require("redis"); const app = express(); // Redis 클라이언트 생성 const client = redis.createClient({ socket: { host: "redis-server", port: 6379 } }); async function connectToRedis() { let connected = false; while (!connected) { try { await client.connect(); console.log('Connected to Redis'); connected = true; } catch (error) { console.error('Error connecting to Redis:', error); console.log('Retrying in 2 seconds...'); await new Promise(resolve => setTimeout(resolve, 2000)); } } } // Express 엔드포인트 설정 app.get('/', async (req, res) => { try { let number = await client.get('number'); if (number === null) { number = 0; } console.log('Number: ' + number); res.send("숫자가 1씩 올라갑니다. 숫자: " + number); await client.set("number", parseInt(number) + 1); } catch (error) { console.error('Error:', error); res.status(500).send('Redis 연결 오류'); } }); // 서버 시작 전에 Redis 연결 app.listen(8080, async () => { await connectToRedis(); // 서버 시작 시 Redis 연결 시도 console.log('Server is running on port 8080'); }); 모두 저장 후 터미널에서docker compose down docker compose up --build
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Docker Hub에 Push 무한 로딩
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 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.4PLAY [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] ************************************************************************************.... 무한로딩
-
해결됨개발자를 위한 쉬운 도커
강의 이미지 사용
안녕하세요. 강의 잘 듣고 있습니다. 다름이 아니라 저는 공부할때 공부한 내용을 정리하고 벨로그에 포스팅하는데요. pdf 이미지 (에를 들어 컨테이너의 라이프 사이클) 를 캡처 해서 같이 올려도 괜찮을 까요?
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
강의 자료 파일이 깨진거 같습니다
다운로드해도 파일이 안열리고 파일명이 자소분리현상이 있습니다
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
컨테이너에 ssh로 접속 비밀번호 불일치
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.PS C:\Users\user> docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES6b7834a16e0a 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-serverf762097105dd 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 해보고 했는데 여전히 오류 입니다.윈도우에서는 되다가 오히려 리눅스 환경에서 안되는게 이유를 모르겠습니다 ㅠㅠ 답변 부탁합니다
-
해결됨개발자를 위한 쉬운 도커
USER 명령어와 관련하여 질문드립니다
Dockerfile-meta 작성하실 때,USER node를 작성하셨는데, 실제로 컨테이너가 실행되는 환경에서 node가 없으면 에러나야할 것 같은데, node:14환경에서는 node user가 이미 존재하는 이미지인건가요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
깃허브 캐싱
.gitignore에 추가된 application.yml을 CI/CD로 관리하기 강의에서 1:40초 부분에서 git add . / git status한 다음에 application.yml이 수정이 되고 있다. 캐싱떄문이라고 하셨는데 . application.properties를 yml로 바꾸고aws: access-key: ABCDEFG secret-key : HOIJOIASDJO 이 값들을 입력했는데 git status에 어느부분이 문제인건가요? yml파일도 modified?라는 상태가 안떠서 문제인건지 정확히 이해를 못해서 질문 남깁니다. 혹시 .gitignore에 넣었으니깐 새로운 파일을 추가하던 수정을 하던 git status에 안떠야 정상인건가요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
깃허브 시크릿
- name: application.yml 만들기 run: echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./src/main/resources/application.yml 강의에서 이런식으로 시크릿 변수에 yml을 미리 넣었는데 만약에 yml안에서도 시크릿 변수를 사용하면 제대로 동작을 하나요?? ex)kakaopay: secretKey: ${KAKAOPAY_KEY} 이런식으로 yml에 있다고 할 때
-
해결됨개발자를 위한 쉬운 도커
강의 예정
안녕하세요. 데브위키님!예전에 3월중으로 새로운 강의를 낼 계획이라고 하셨었는데 혹시 나올까요!?나온다면 언제쯤 나올까요?ㅎㅎ
주간 인기글
순위 정보를
불러오고 있어요