728x90
반응형
깃랩 Gitlab
러너 등록
방법 #2
-
config.toml
상황
- java 1.8로 개발된 프로젝트를 maven으로 빌드해서 배포해야될 경우가 생겼다.
처리방법
- 먼저 gitlab-runner register 명령으로 러너는 대충 등록해놓고 (executor은 shell로 하자, 나중에 config.toml파일에서 docker로 바꾸면된다.)
- jdk 8에 maven까지 셋팅된 docker-image가 있는지 찾아보니 있었다
https://hub.docker.com/r/iflavoursbv/mvn-openjdk-8-alpine
- config.toml 파일을 열어서 executor을 "docker"로 바꿔주고
- [runner.custom_build_dir] 부터 runner.docker 부분 끝 (shm_size=0) 까지 복붙 해주고
- [runner..docker]에 image는 위에서 찾은 docker image를 넣어준다. (iflavoursbv/mvn-openjdk-8-alpine)
- [runner..docker]에 volumes에는 기본적으로 있는 "/cache" 는 놔두고, maven Repository 경로인 m2폴더를 잡아준다.
뒤에 추가적으로 volume을 잡아주고 싶으면 testserv 처럼 더 잡아줘도된다. - volume에 대한 자세한 설명은 docker volumes doc에서 확인.
https://docs.docker.com/storage/volumes/
volume은 Docker 컨테이너에서 생성되고 사용되는 데이터를 유지하기 위해 선호되는 메커니즘이다.
- 다시 돌아와서 아래 처럼 설정하면 runner는 openjdk1.8과 maven이 설치된 알파인 리눅스 환경으로 실행된다.
- docker의 메이븐 저장소는 /user/.m2폴더로 마운트되어있다.
[[runners]]
...
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
tls_verify = false
image = "iflavoursbv/mvn-openjdk-8-alpine"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache", "/user/.m2:/root/.m2/", "/gitlab-runner/testserv:/testserv"]
shm_size = 0
..
- Gitlab에 돌아와서 파이프라인 실행해보면 iflavoursbv/mvn-openjdk-8-alpine docker image로 실행되는것을 확인할 수 있다.
728x90
반응형