2016-08-23 5 views
1

내 현재 설정은 내 VPS에서 내 자식 시스템을 설정했습니다 staging.배포하기 전에 도커에서 테스트를 실행하는 가장 좋은 방법은 무엇입니까

그래서, 내가 할 때

git push staging staging 

나는 마운트 된 디렉토리 내 고정 표시기가 자식-workdirs를 참조 다시 실행하십시오.

이제 도커 안의 테스트 실행을 추가하고 싶습니다. 뭔가 실패하면 이전 (작동 중) 커밋으로 롤백하십시오. [1]

[1]

내 현재의 후크은 다음과 같습니다 할 수있는 가장 좋은 방법은 무엇입니까 :

$worktree = /my/work/directory 
$gitdir = /my/repo/dir.git 
$containername = mycontainer 
git --work-tree=$worktree --git-dir=$gitdir checkout staging -f 
cd $worktree 
docker stop $containername || true 
docker kill $containername || true 
docker rm $containername || true 
docker run -d -p $port1:$port2 --name $containername -v $worktree:/root/src -it $imagename bash -c $runscript 

답변

2

(하지만 서로 다른 접근 방식, 직접 귀하의 질문에 대답하지 않을 수 있습니다 , 휠을 다시 발명 할 필요가 없음)

나는 새로운 테스트 인스턴스를 시작할 수 있으며, VM웨어, ec2 인스턴스 등이 될 수 있습니다. 다른 드라이버 (침입자, ec2, docker 등), 물론 docker에서 docker를 테스트 할 수는 없습니다. 자동으로 확인하기 위해 동일한 코드를 실행할 수 있습니다.

여기에 모든 것이 제대로 설정되어있는 경우, 하나의 명령 kitchen test 모든 배포, 테스트를 실행하고 직접 인스턴스를 파괴하는 Getting started guide

입니다.

테스트 케이스는 쉽게, 테스트 케이스에 대한 세부 사항을 위해 등 실행중인 인스턴스, 포트 듣기, 테스트 당신은 수동으로 문제 해결 스텝 -을 얻는 단계 아래로 실행할 수 있습니다 serverspec resource types

참조 할 수있는 serverspec을 사용하고 있습니다 by-step

kitchen test = kitchen create + kitchen converge + kitchen verify + kitchen destroy