uuuhhh
아주조코
uuuhhh
  • 전체 (68)
    • Cloud (22)
      • AWS (17)
      • NCP (4)
      • Tech (1)
    • Kubernetes (16)
    • Docker (1)
    • CI/CD (13)
    • Network (4)
    • OS (10)
      • Linux (9)
      • Concepts (1)
    • Language (0)
      • Golang (0)
    • Project (1)
      • Drone (1)
    • 요모조모 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • ⚠️ 2022/11/08 - 11/13 블로그 이관 작업 ⋯

인기 글

태그

  • network
  • docker
  • LoadBalancer
  • 데이터베이스
  • Instance
  • Jenkins
  • EC2
  • CI
  • pod
  • build
  • ncp
  • service
  • minikube
  • kubernetes
  • NKS
  • Linux
  • NodePort
  • Iam
  • argocd
  • AWS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
uuuhhh

아주조코

Jenkins Back-End Dockerizing
CI/CD

Jenkins Back-End Dockerizing

2022. 12. 13. 10:29

👀 Epilogue


  • 역시나 험난한 트러블 슈팅기

 

  • 도커가 없다고 하는 거 같아요..

 

⚡ Leggo


  • 플러그인 설치
    • Docker
    • Docker Pipeline
  • 실패..

 

  • uname -a 를 통해 OS 정보 확인
+ uname -a

Linux default-hp930 5.4.0-99-generic #112-Ubuntu SMP Thu Feb 3 13:50:55 UTC 2022 x86_64 GNU/Linux

 

  • 도커 설치 스크립트 추가
sudo apt-get update
sudo apt-get install docker.io
sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker

 

  • agent pod에서 sudo: not found 문제로 실패

 

  • 해결책
apt-get update && apt-get -y install sudo
  • 이지만 매번 agent pod가 띄워질 때마다 패키지를 업데이트하고 설치하는 것이 빌드 파이프라인에 시간이 많이 소비될 것이 우려됨

 

  • 다른 해결책을 찾다가 저번 Gradle Build에서 Custom Agent를 실패했던 것이 떠올랐다.

 

  • 현재 Agent pod에 도커가 없으니
  • ‘Docker Container를 Custom해서 Agent에 넣어주면 Image Build가 되지 않을까’
  • 라고 생각하게 되었다.

 

  • Agent Docker Container
spec:
  containers:
  - name: docker
    image: docker:latest
    command:
    - cat
    tty: true
    volumeMounts:
    - mountPath: /var/run/docker.sock
      name: docker-sock
  volumes:
  - name: docker-sock
    hostPath:
      path: /var/run/docker.sock

 

  • Dockerfile
FROM openjdk:11

ARG JAR_FILE_PATH=./*.jar
COPY ${JAR_FILE_PATH} ./app.jar

EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]

 

  • Jenkinsfile
pipeline{
    agent {
        kubernetes{
            yamlFile 'KubernetesPod.yaml'
        }
    }

...

stage('Docker Image Build'){
            steps{
                container('docker'){
                    sh "cp demo/build/libs/demo-0.0.1-SNAPSHOT.jar ./"
                    sh "cp demo/Dockerfile ./"
                    sh "docker build . -t ${dockerHubRegistry}:${currentBuild.number}"
                    sh "docker build . -t ${dockerHubRegistry}:latest"
                }
            }

...

 

  • 빌드 시작 !
    • 성공 !!!!!!!!! 🌈
+ cp demo/build/libs/demo-0.0.1-SNAPSHOT.jar ./
[Pipeline] sh
+ cp demo/Dockerfile ./
[Pipeline] sh
+ docker build . -t uh2959/cucumber-back:51
Sending build context to Docker daemon  35.92MB

Step 1/5 : FROM openjdk:11
11: Pulling from library/openjdk
001c52e26ad5: Pulling fs layer
...
66223a710990: Pulling fs layer
db38d58ec8ab: Pulling fs layer
d85151f15b66: Waiting
...
9daef329d350: Waiting
d9d4b9b6e964: Verifying Checksum
d9d4b9b6e964: Download complete
2068746827ec: Verifying Checksum
...
db38d58ec8ab: Verifying Checksum
db38d58ec8ab: Download complete
001c52e26ad5: Pull complete
...
db38d58ec8ab: Pull complete
Digest: sha256:99bac5bf83633e3c7399aed725c8415e7b569b54e03e4599e580fc9cdb7c21ab
Status: Downloaded newer image for openjdk:11
 ---> 47a932d998b7
Step 2/5 : ARG JAR_FILE_PATH=./*.jar
 ---> Running in 208235ed04bf
...
Successfully built d9934a7196a4
Successfully tagged uh2959/cucumber-back:latest
[Pipeline] }
[Pipeline] // container
Post stage
[Pipeline] echo
Docker image build success!
[Pipeline] }
...
[Pipeline] End of Pipeline
Finished: SUCCESS

 

 

ref.


How to Use Kubernetes Pods As Jenkins Agents

Docker in Docker with Jenkins Pod on Kubernetes

저작자표시

'CI/CD' 카테고리의 다른 글

Jenkins Kubernetes Manifest Deploy  (0) 2022.12.14
Jenkins Docker Image Push  (0) 2022.12.14
Jenkins Back-End Gradle Build  (0) 2022.12.13
Jenkins Webhook 연동  (0) 2022.12.12
ArgoCD Helm 설치 & 테스트  (0) 2022.12.10
    'CI/CD' 카테고리의 다른 글
    • Jenkins Kubernetes Manifest Deploy
    • Jenkins Docker Image Push
    • Jenkins Back-End Gradle Build
    • Jenkins Webhook 연동
    uuuhhh
    uuuhhh
    피땀눈물의 삽질기

    티스토리툴바