테스트/미리보기 목적으로 별도의 가상 호스트/도메인에서 프로젝트의 Git 저장소의 특정 분기를 실행하고 싶습니다. Git push 후에 브라우저에서 수동 테스트를 위해 "미리보기"또는 "테스트"서버로 분기를 배포하는 프로세스에 대해 생각하고 있습니다.웹 프로젝트의 분기를 병렬로 실행하는 방법은 무엇입니까?
예. 특정 서버에 "feature/my-new-feature"라는 지점을 배포하고 "my-new feature.project.com"과 같은 URL에서 프로젝트에 액세스 할 수있게하면 좋을 것입니다.
이론적으로는 처음부터 직면 한 문제는 데이터베이스 연결/구성, 포트 등에 대한 문제입니다. 예를 들어 단일 서버의 별도 하위 도메인에서 여러 분기가 실행되는 경우에는 다음을 수행해야합니다. 단일 MySQL 설치를 공유합니다. 실제로 모든 지사는 모든 지사에 대해 데이터베이스 구성이 변경되지 않기 때문에 별도의 MySQL 인스턴스가 필요합니다. 즉, 동일한 지사에 연결하여 동일한 데이터베이스 이름, 사용자,
아마도 한 가지 방법은 포트를 VM에 직접 매핑하는 것입니다. (최소한 그것이 어떻게 든 가능하다고 생각합니다.) 많은 분기가있는 많은 프로젝트에서 이것은 의미 할 수 있습니다. 하드웨어가 많이 필요해. 이걸 처리하는 오우어. (그리고 아마도 돈이 많이 든다.)
그렇다면 도커 및/또는 Linux 컨테이너에 대해 들었을 때 이것이 제대로 작동 할 수 있을지도 모르겠다.하지만 어떻게 작동하는지 완전히 모르겠다.
간섭 서비스 및 관련 충돌에 대한 문제없이 병렬로 프로젝트의 멀티플 버전을 실행하는 방법이 무엇인지 궁금합니다.
그런 설정을 위해 도커를 사용하는 것이 가능할까요, 아니면 내가 완전히 가고있는 방향입니까?
anwsers에게 감사드립니다.
내 의견을 많이 보내 주셔서 감사합니다. 내가 찾고있는 것과 아주 흡사합니다. : D 내가 아직 이해하지 못하는 것은 docker 이미지를 교환 할 때 데이터베이스/컨텐트를 유지하는 방법입니다. 예를 들어 기존 분기에 새 코드 변경 사항을 적용하고 이전 고정 점 이미지를 중지하고 새 점을 시작하지만 이전 고정 점 이미지의 데이터베이스 데이터를 새 분기 내부에 유지하려고합니다. CI/CD 서버를 사용하여 이전 고정 이미지에서 데이터베이스를 내보내고 새 이미지로 가져올 수 있습니까? 아니면 더 쉬운 방법이 있습니까? 고마워요! :) – Thasmo
컨테이너에 호스트 디렉토리를 "마운트"하여 컨테이너를 재구성 할 때마다 mysql 데이터베이스 폴더가 보존되도록합니다 (바인드 마운트 참조 : http://docs.docker.io/en/latest/commandline/command/). 실행 /) –
아, 그래. 훌륭한. Git 브랜치가 삭제되면 CI/CD 서버가 브랜치의 도커 인스턴스/이미지와 마운트 된 디렉토리를 삭제하도록 구성 할 수 있습니까? – Thasmo