docker-compose.yml에서 서비스를 비활성화할 수 있는 방법이 있습니까?
나는 내가 서비스를 일시적으로 비활성화하고 싶은 상황에 처해 있다는 것을 알게 되었습니다.docker-compose
파일.
물론 언급할 수는 있겠지만, 그냥 "라고 말할 수 있는 선택지는 없을까요?"enabled: false
" ?
2021년 1월 현재 서비스를 우아하게 비활성화할 수 있는 방법이 있습니다.docker-compose.yml
또는 다른 서비스가 아닌 일부 서비스를 선택적으로 실행할 수 있습니다.Docker Composes 1.28.0은 A에 대한 지원을 도입했습니다.profiles
이제 우리는 다음과 같은 일을 할 수 있습니다.
version: "3.9"
services:
base_image:
...
profiles:
- donotstart
문서의 예에서는 이 키를 사용하여 다음을 기반으로 함께 실행되는 컨테이너 그룹을 만드는 방법을 설명합니다.--profile
명령 줄에 옵션이 있습니다.이 페이지를 확인해보세요: https://docs.docker.com/compose/profiles/
갱신하다
구성 V2 베타 5에서 프로파일 지원이 올바르게 작동합니다(docker compose
). Composes V2 베타 6는 도커 데스크톱 3.5.2 출시 2021-07-08에 포함되었습니다.
당신은 그것을 할 수 있습니다.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"]
또는 해당 명령을 아무 것도 하지 않는 명령으로 바꾸기 위해 을 다시 정의할 수 있습니다./bin/true
)
그러면 컨테이너가 즉시 빠져나가고 아무 조치도 취하지 않을 겁니다.
shadi는 다음 팁을 주석에 추가합니다.
서비스를 구축하지 않으려면 빌드 키를 다시 정의하여 다음을 가리킵니다.
Dockerfile
이는 다음과 같습니다.
FROM tianon/true
ENTRYPOINT ["/true"]
5and0은 댓글에서 최상위 섹션(확장 필드와 같은)을 지적합니다.
훨씬 편리: 비활성화된 서비스를 최상위 섹션으로 이동
x-disabled:
대신에services:
가 있는 섹션
x-
접두사는 구문 분석되지만 확장 필드로 의도된 방식으로 사용되지 않으면 무시됩니다.
다음을 통해 서비스를 0개의 복제본으로 확장합니다.
deploy:
replicas: 0
안타깝게도 문서에 나와 있듯이 이것은 도커 스웜에서만 작동합니다.
프로파일에 서비스 할당
services:
dev_service:
...
profiles: ["dev"] # only runs with dev profile
프로파일 사용
docker compose --profile dev up
ref: https://docs.docker.com/compose/profiles/
일시적으로 사용하지 않도록 설정할 서비스에 다음 추가 줄을 추가합니다.
command: echo "{put your service name here} disabled"
어쨌든 시작은 하지만 아무 것도 하지 않습니다.
Docker composition yaml 파일에 정의된 서비스를 비활성화할 수 있는 방법은 없습니다.VonC의 제안은 좋은 해결책입니다. 사용 가능한 옵션에 대해서는 도커 구성 설명서 아래를 참조하십시오. https://docs.docker.com/compose/compose-file/
알겠습니다.
docker-compose up $(yq -r '.services | keys | join(" ")' docker-compose.yml | sed 's/service-name//')
언급URL : https://stackoverflow.com/questions/37254881/is-there-any-way-to-disable-a-service-in-docker-compose-yml
'programing' 카테고리의 다른 글
Excel 파일 c#에서 새 워크시트를 생성하는 방법은? (0) | 2023.09.08 |
---|---|
Swift 3에서 배열에서 개체 제거 (0) | 2023.09.08 |
오류 코드: 1406.데이터가 너무 길어서 열에 사용할 수 없음 - MySQL (0) | 2023.09.08 |
JWT를 사용한 소켓 IO 연결 인증 (0) | 2023.09.03 |
PowerShell에서 보안 FTP를 자동화하는 가장 좋은 방법은 무엇입니까? (0) | 2023.09.03 |