-
docker + gitlab + gitlab ci(=runner)카테고리 없음 2019. 4. 16. 16:57
일단 AMI CentOS 7 버전 설치
# yum install docker
도커 버전 확인
# docker version
Client:
Version: 18.06.1-ce..
# curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
# yum install gitlab-runner
#실행권한 부여
usermod -aG docker ec2-user // 혹시 ami 를 사용중이라면 이것도 추가 해놓는다.
usermod -aG docker gitlab-runner깃랩 러너 권한 설정이 안되면 다음과 같은 에러가 생길수 있으니 도커서비스를 재시작 하는게 좋다.
systemctl restart docker
러너 cli 셋팅
: 우선 해당 프로젝트 Settings -> CI/CI -> Runners settings 에서 다음에 CLI 를 통한 config 정보를 확인한다.
# gitlab-runner register ( root 권한 필수!, 아래 메세지는 유저권한으로 하다가 에러 발생한 로그)
질문에 하나 하나 입력한다.
이렇게 하면 설정 끝!
이제 도커 설정 , gitlab-ci.yml 파일 셋팅이 필요하다 .
stages: - build - deploy - rollback variables: DOCKER_IMAGE_NAME: cubenuri/web-monitor DOCKER_PROCESS_NAME: web-monitor before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" build: stage: build script: - ./gradlew clean build - docker build -t "$DOCKER_IMAGE_NAME":latest . - docker push "$DOCKER_IMAGE_NAME":latest after_script: - echo 'build & push success!' tags: - base-runner only: - master deploy: stage: deploy script: - (if [ "$(docker ps -a | grep "$DOCKER_PROCESS_NAME")" ]; then docker stop "$DOCKER_PROCESS_NAME" && docker rm "$DOCKER_PROCESS_NAME" && docker image tag "$DOCKER_IMAGE_NAME":latest "$DOCKER_IMAGE_NAME":backup && docker rmi "$DOCKER_IMAGE_NAME":latest ; fi); - docker pull "$DOCKER_IMAGE_NAME" - docker run -p 8001:8080 -d --restart always --name "$DOCKER_PROCESS_NAME" "$DOCKER_IMAGE_NAME":latest tags: - base-runner only: - master when: manual rollback: stage: rollback script: - docker stop "$DOCKER_PROCESS_NAME" - docker rm "$DOCKER_PROCESS_NAME" - docker run -p 8001:8080 -d --restart always --name "$DOCKER_PROCESS_NAME" "$DOCKER_IMAGE_NAME":backup tags: - base-runner when: manual only: - master