분류 전체보기

    가상화 기술(cgroups, namespace)

    cgroups (control groups) 프로세스들이 사용할 수 있는 컴퓨팅 자원들을 제한하고 격리 아래 자원들을 제한 - memory - cpu - network - device - i/o namespace 하나의 시스템에서 프로세스를 격리시킬 수 있는 가상화 기술 종류 - mnt - pid - net - ipc - uts - user

    Docker Container에서 프로세스 백그라운드 실행

    1. vi start.sh 생성 #!/usr/bin/env bash nohup /bin/bash -c “/usr/bin/dockerd 1>/dev/null&2>/dev/null &” 2. Dockerfile CMD /home/start.sh

    Jenkins Github Webhook 연동

    Jenkins Github Webhook 연동

    github-webhook 방법 보다는 token을 이용한 generic-webhook-tigger를 추천한다. 이유는 webhook 걸려는 git 프로젝트가 하나 이상의 젠킨스 프로젝트에 설정되있을 경우 모두 webhook이 걸려버린다. 가령 나는 젠킨스의 A 프로젝트만 webhook 걸려고 하는데 B 프로젝트에서도 같은 git 프로젝트가 설정되있으면 A, B모두 webhook이 걸린다. 따라서 내가 원하는 젠킨스 프로젝트만 webhook을 걸려면 generic-webhook-trigger를 이용하면 된다. 1. Github 설정 Github 우측 상단 아이콘을 클릭하고 Settings 클릭 좌측 메뉴에서 Development settings -> Personal access tokens -> Gene..

    jenkins Warning: A secret was passed to “sh” using Groovy String interpolation..

    2.249.2 버전 업데이트 이후 jenkins 공통 라이브러리에서 사용하고 있는 sh, bat 코드에서 아래와 같은 경고 문구가 발생했다. Warning: A secret was passed to “sh” using Groovy String interpolation, which is insecure 내용인 즉슨 sh 코드에서 큰따옴표로 묶은 구문이 SQL Injection에 취약하다는 내용이 있었고(https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#string-interpolation) 작은따옴표로 바꿔줘야 한다는 것이었다. 근데 단순히 큰따옴표에서 작은따옴표로 바꾸면 명령어에 변수 주입된 부분이 제대로 동작하지 않는다. 구글링과 삽질을 통해서 해결했는데 ..

    구형 맥북프로 빅서 게이트(애플 코리아) 논란

    나도 13년형 맥북에어를 사용하지만 클리앙 빅서 게이트 글 보는내내 빡치고 앞으로 내인생에 더이상 맥북은 없을 것이다. 애플 코리아 고객 응대도 그렇고 업데이트를 고객 탓으로 돌린다니 어처구니 없는 응대이다. 잘못된 업데이트가 나왔으면 업데이트를 중지시키던가 해야지 구형 맥북 쓰는 유저가 잘못이고 업데이트를 한 유저가 잘못이라니 말이냐 막걸리냐 에잇 퉷 사건 링크 : https://m.clien.net/service/board/park/15624979?od=T31&po=0&category=&groupCd=빅서게이트, 사람 바보 취급하는 애플 코리아 : 클리앙제가 지난 저녁에 겪은 황당 사건을 공유드립니다. 좀 길지만 꼭 한번 봐주세요!! 감사합니다 너무 길었네요 감사합니다 부디 여러분은 애플 케어 하세요!!

    Jenkins java.io.NotserializableException: groovy.lang.IntRange

    젠킨스에서 for loop 사용시 for (idx in 0..max)

    Jenkins에서 배치파일 리턴받기(커맨드 제거)

    script{ def response = bat( returnStdout: true, script: """ type C:\\somefile.txt """ ).trim(); def responseParsed = response.readLines().drop(1).join(",") } - 배치파일을 실행한 후 리턴 받을때 커맨드라인까지 모두 리턴값으로 들어옴 - 첫번째 커맨드 라인 제거 후 리턴 받는다