docker-compose
파일 에서 서비스를 일시적으로 비활성화하고 싶은 상황에 처해 있습니다.
물론 주석을 달 수는 있지만 " enabled: false
" 라고 말할 수있는 옵션이 있습니까?
docker-compose
파일 에서 서비스를 일시적으로 비활성화하고 싶은 상황에 처해 있습니다.
물론 주석을 달 수는 있지만 " enabled: false
" 라고 말할 수있는 옵션이 있습니까?
--no-deps
은 종속성을 시작하지 않으려는 경우이다. 나는 당신이 찾고있는 것이 아니라 그 반대임을 압니다.
docker-compose -f docker-compose.yml -f another-docker-compose.yml up -d
. 결과 docker compose merge를 config 명령으로 확인할 수 있습니다 .docker-compose -f docker-compose.yml -f another-docker-compose.yml config
답변:
entrypoint
또는command
명령을 아무 작업도 수행하지 않는 것으로 대체하기 위해 또는를 재정의 할 수 있습니다 ( /bin/true
)
그러면 컨테이너가 즉시 종료되고 아무 작업도 수행되지 않습니다.
shadi 는 주석에 다음 팁을 추가합니다.
서비스를 전혀 빌드하지 않으려면 다음
Dockerfile
만 있는을 가리 키도록 빌드 키를 재정의하십시오 .
FROM tianon/true
ENTRYPOINT ["/true"]
5andr0 은 주석 에서 최상위 섹션x-disabled:
(확장 필드 유사)을 지적합니다 .
훨씬 더 편리 : 비활성화 된 서비스를
x-disabled:
대신 최상위 섹션 으로 이동services:
x-
접두사가있는 섹션 은 구문 분석되지만 확장 필드로 의도 한 방식으로 사용되지 않으면 무시됩니다.
restart: "no"
무한 재시작을 피하기 위해 추가 / 변경할 것입니다
x-disabled:
대신 최상위 섹션 으로 이동services:
docker-compose.override.yaml
파일 에서 할 수 있습니다 .
이 파일은 자동으로 읽고 docker-compose
기본 docker-compose.yaml
.
Git에서 제외 된 경우 각 개발자는 원본을 변경하지 않고 구성 (몇 가지 제한 사항)을 조정할 수 있습니다 docker-compose.yaml
.
따라서 다음에서 foo
진입 점을 재정 의하여 서비스 를 임시로 비활성화 할 수 있습니다 docker-compose.override.yaml
.
version: "3"
services:
foo:
entrypoint: ["echo", "Service foo disabled"]
export XXX_ENTRYPOINT=/bin/true
`entrypoint : [ "$ {XXX_ENTRYPOINT : -docker-entrypoint.sh}"]`
Docker compose yaml 파일에 정의 된 서비스를 비활성화하는 방법은 없습니다. VonC의 제안은 좋은 해결 방법입니다. 사용 가능한 옵션에 대해서는 docker compose documentation 아래를 참조하십시오 https://docs.docker.com/compose/compose-file/
docker-compose up
하면 기본적으로 모든 서비스가 시작됩니다. 그러나 실행docker-compose up myservice
하면 myservice와 그에 의존하는 것들이 시작됩니다. 종속성을 설정하면이 명령으로 잘못된 서비스가 시작되지 않도록 만들 수 있습니다.docker-compose run
원하는 서비스를 받기 위해 할 수도 있습니다 . 올바른 선택은 필요한 유연성을 허용하기 위해 여러 작성 파일로 분할하는 것입니다.