docker-compose.yml
에서 변수 대체를 사용하여 CPU 수를 설정하려고합니다.Docker가 변수 대체를 작성합니다.
test.yml
version: "2.2"
services:
neo4j:
image: neo4j:3.2
cpus: ${MAX_CPUS}
실행이 스크립트에 의해 :
test.sh
#!/bin/sh
export MAX_CPUS=4
docker-compose -f test.yml up -d
내가이 오류이 작성 파일
:$ ./test.sh
ERROR: The Compose file './test.yml' is invalid because:
services.neo4j.cpus contains an invalid type, it should be a number
변수를 올바르게 읽는 중입니다.
ERROR: Named volume "4:/foo:rw" is used in service "neo4j" but no declaration was found in the volumes section.
변수 대체가 값이 숫자에도 불구하고, 문자열로 해석되고 있음을 나타납니다이 작성 파일을 사용하는 경우
version: "2.2"
services:
neo4j:
image: neo4j:3.2
#cpus: ${MAX_CPUS}
volumes:
- ${MAX_CPUS}:/foo
은 내가 대체 된 값을 사용하는 오류 .
문제가 있다고 가정하면 번호로 강제로 전환 할 수 있습니까?
나는 도커 - 머신을 사용하여 Mac OS X에서 실행됩니다.
$ docker-compose --version
docker-compose version 1.17.1, build 6d101fb
$ docker-machine --version
docker-machine version 0.13.0, build 9ba6da9
당신은'cpus' 섹션을 주석 처리했습니다. 대신에'volumes' 정의에 대해 동일한 변수를 사용하고 있습니다. 당신이 의도하지 않았다고 가정합니다. - 볼륨 "4"가 존재하지 않습니다 ; 그게 어디에서 오류가오고 - 그리고 당신의'cpus' 진술서조차도 맞지 않습니다. –
@TJBiddle OP가 묻는 문제가있는 docker-compose.yml 파일에는'volume' 키가 없습니다. – larsks
@larsks 아 - 네 말이 맞아. 나는 너무 빨리 질문을 훑어 보았다. 트로이 - 왜 이러는거야? 이 기능은 이후 버전의 Compose에서 제거되었으며 이제는 Swarm 모드에서만 사용할 수 있습니다. - 왜 이것을 개발 중에 원하는 이유가 있습니까? –