docker-compose.부팅 시 여러 Yml를 지정하여 차점을 무시합니다.
결론
시작할 때 여러 개의 docker-compose 파일을 지정하면 차분을 덮어쓰고 적용할 수 있는 메커니즘을 사용하면 환경에 따라 여러 파일을 이중 유지보수할 필요가 없습니다.
docker-sync를 사용할 환경과 사용하지 않을 환경 두 가지를 준비할 경우
docker-compose.yml
는 docker-sync의 설정이 없고 docker-compose.with-docker-sync.yml
와 같은 다른 파일에서는 docker-sync의 차이점만 정의하여 이중 유지보수를 피하고 서로 다른 환경을 준비할 수 있습니다.docker-sync-with-docker-sync.yml
version: "3"
services:
web:
volumes:
- web-native-osx-sync:/app:nocopy
volumes:
web-native-osx-sync:
external: true
docker-sync를 사용하지 않는 환경
$ docker-compose up
docker-sync를 사용하는 환경
$ docker-sync start
$ docker-compose -f docker-compose.yml -f docker-compose.with-docker-sync.yml up
딱한 사정
평소 Mac에서 Docker Desktop을 사용하여 개발하면 파일을 동기화하는 데 상당한 시간이 걸리기 때문에 docker-sync를 사용합니다.
그러나 팀에도 윈도 개발을 사용하는 구성원이 있다. 그들은 같은 시기의 지연에 고생하지 않고 안정성을 중시하기 때문에 docker sync를 사용하지 않았다.
지금까지 기본적으로 같은 구성의 두 개의 파일을 준비했고volumes의 부분만docker-sync에 사용했습니다.
docker-compose.yml
변경 시docker-compose.with-docker-sync.yml
도 같은 변경 적용...매우 특별한 이중 유지보수로 변경 누락이 간혹 발생.docker-sync를 사용하지 않는 구성원
참조
$ docker-compose up
docker-compose.yml
시작docker-sync를 사용하는 구성원
$ docker-sync start
$ docker-compose -f docker-compose.with-docker-sync.yml up
docker-sync.yml
의 설정에 따라 docker-compose.with-docker-sync.yml
로 시작해결책
나는 이중 유지보수를 하려고 하기 때문에 Docker Compose의 문서를 보고 시작할 때 여러 개의 파일을 지정하면 차이를 덮어쓸 수 있다는 것을 알게 되었다.
만약 서비스 정의가 두 파일에 존재한다면 Compose는 설정을 추가하고 덮어쓰는 규칙에 따라 설정을 통합합니다.
따라서
docker-compose.yml
와 덮어쓰기를 정의하는 곳은 대체적으로 삭제하고,docker-sync를 사용할 때는 덮어쓰고 싶은 곳만 정의합니다.docker-sync-with-docker-sync.yml
version: "3"
services:
web:
volumes:
- web-native-osx-sync:/app:nocopy
volumes:
web-native-osx-sync:
external: true
그런 다음 두 파일을 읽어서 설정을 덮어쓸 수 있습니다.이렇게 하면 이중 유지보수에서 해방된다.
$ docker-sync start
$ docker-compose -f docker-compose.yml -f docker-compose.with-docker-sync.yml up
보태다
참고로 docker-sync를 사용할 때
docker-sync.yml
의 옵션 중 아래에 사용된 파일 이름을 상대방에게 건네주면docker-sync-stack start
시작할 수 있어 매우 편리합니다.docker-sync.yml
version: "2"
options:
compose-file-path: ['docker-compose.yml', 'docker-compose.with-docker-sync.yml']
syncs:
web-native-osx-sync:
src: './app'
$ docker-sync-stack start
This will first start the sync service like docker-sync start and then start your compose stack like docker-compose up.You do not need to run docker-sync start beforehand!
This is very convenient so you only need one shell, one command to start working and CTRL-C to stop.
Reference
이 문제에 관하여(docker-compose.부팅 시 여러 Yml를 지정하여 차점을 무시합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/nhsykym/articles/d016604e0baa1c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)