728x90
반응형

빌드 시 디렉토리 지정

  • script 안에 dir 을 선언해서 빌드 할 소스 상에서의 위치를 정의할 수 있다.

stage('도커 이미지 빌드') {
    steps {
        script {
            dir("api") {
                    // 브랜치에 따라 이미지 이름 변경
                    DOCKER_IMAGE = docker.build(DOCKER_IMAGE_NAME)
                }
            }
        echo "Built: ${DOCKER_IMAGE_NAME}"
    }
}

Golang 빌드

  • Go를 빌드하여 컴파일 된 바이너리 파일을 배포하고자 한다.
    • 때문에 빌드 시에 go 언어 컴파일이 가능하게끔 시도하였다.
      • 때문에 go 언어 도커 이미지를 받아와 빌드하려고 한다.
      • 이 때 golang 이미지는 go.mod 에 명시된 go 버전을 사용해야만 한다.

stage('도커 이미지 빌드') {
    agent {
        docker {
            image 'golang:1.23.4' // go.mod 의 버전과 동일하게
            args '-v /tmp:/tmp' // 권한 문제로 인해, 쓰기 권한이 있는 디렉토리 설정
        }
    }
    steps {
        script {
            dir("backup") {
                sh '''
                    export GOCACHE=/tmp/go-build-cache
                    mkdir -p $GOCACHE
                    GO111MODULE=on CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o backup .
                '''
            }
            echo "Built Backup Binary"
        }
    }
}
728x90
반응형

'데브옵스 devOps > Jenkins' 카테고리의 다른 글

[Jenkins] 실제 CI/CD 배포 세팅  (2) 2024.10.29
[Jenkins] 젠킨스란?  (2) 2024.10.07

+ Recent posts