우리는 mongodb, java 백엔드 및 express-js 기반 프론트 엔드로 구성된 작은 프로젝트를 개발 중입니다. 우리는 프로덕션 용도를 제외하고는 모두 docker-compose
을 배포 도구로 선택했으며 지금까지 한 가지 예외를 제외하고는 상당히 유용했습니다. 현재도커 작성 오버라이드 파일 관리
, 우리는 그것을 사용
- 지역 dev에 클러스터를 실행;
- 통합 테스트 실행 (일부 조정 및 추가 종속성 포함).
- 로드 테스팅 환경 준비 (추가 조정 포함).
- 별도의 클라우드 시스템에서 준비/데모 환경을 실행 중입니다. (간결을위한
d-c
로 대체docker-compose
)docker-compose.yml
,d-c.override.yml
,d-c.test.yml
,d-c.load.yml
및d-c.demo.yml
:
우리가 고정 표시기-작성 파일 세트를 도출 한 환경에 따라 모든 다양한 비틀기를 처리합니다.
이렇게하면 기본 작업을 제외한 모든 작업을 매우 긴 명령 줄 호출로 수행 할 수 있습니다. 예 :
docker-compose -f docker-compose.yml -f docker-compose.test.yml up -d --build
docker-compose -f docker-compose.yml -f docker-compose.test.yml exec test_container ./do_tests.sh
악화됩니다. 그 향상에 대한
지금까지 우리는있어 몇 가지 아이디어 : 전체 입력 절약하는 대신에 부분의 파일을 고정 표시기가-구성
- 사용 - 그러나 응용 프로그램 구조 변경/추가 매개 변수가 도입되어 별도의 유지 보수;
- (전자의 변형)은 서비스 용으로
extends
을 사용하고 복사 붙여 넣기를 최소화합니다 (그러나 추가 복잡성이 추가됩니다). - 은 모든 긴 명령을
Makefile
(또는 bash 스크립트)에 저장합니다. 사용의 용이성, 그러나 깔개 아래의 복잡한 복잡성과 같은 느낌; - (이전 버전의 변형) docker-compose plugin/own tooling을 개발하십시오 - 우리의 요구를 처리하는 데 더 명백 할 수 있지만 추가 유지 관리 및 배포의 복잡성.
이러한 아이디어에는 모두 단점이 있습니다. 무엇이 적절한 해결책이고 어떤 도구가 이미 존재하는지 궁금합니다.
동일합니다. 별도의 폴더에 분할했습니다. 간단하게 유지하십시오.) CD 스테이지/도커 - 작성 :-) – opHASnoNAME