2017-12-20 4 views
0

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 
+0

당신은'cpus' 섹션을 주석 처리했습니다. 대신에'volumes' 정의에 대해 동일한 변수를 사용하고 있습니다. 당신이 의도하지 않았다고 가정합니다. - 볼륨 "4"가 존재하지 않습니다 ; 그게 어디에서 오류가오고 - 그리고 당신의'cpus' 진술서조차도 맞지 않습니다. –

+0

@TJBiddle OP가 묻는 문제가있는 docker-compose.yml 파일에는'volume' 키가 없습니다. – larsks

+0

@larsks 아 - 네 말이 맞아. 나는 너무 빨리 질문을 훑어 보았다. 트로이 - 왜 이러는거야? 이 기능은 이후 버전의 Compose에서 제거되었으며 이제는 Swarm 모드에서만 사용할 수 있습니다. - 왜 이것을 개발 중에 원하는 이유가 있습니까? –

답변

0

Docker Compose GitHub 문제를 검색하여 https://github.com/docker/compose/issues/2730을 찾았습니다. 그것은 당신의 문제와 매우 유사하게 들렸다. 풀 요청에 https://github.com/docker/compose/pull/5291에서 고정되어 유형 변환기가 보간 된 값에 대해 추가되었습니다. https://github.com/docker/compose/pull/5291/files#diff-b2372f2a81cc5911e04cc7df7d68675bR148cpus 옵션을 지원하는으로 표시됩니다.

그러나 변환을 위해 일치해야하는 정규식을 https://github.com/docker/compose/pull/5291/files#diff-b2372f2a81cc5911e04cc7df7d68675bR139에서 살펴보면 ^0[0-9]+$임을 알 수 있습니다. 이 정규식은 한 자리 숫자와 일치하지 않습니다. 하지만 과 일치해야합니다. 01.

그래서 바보처럼 들리 겠지만 4 대신 04으로 번호를 변경해 볼 수 있습니까?

+0

*이 정규 표현식은 한 자리 숫자와 일치하지 않습니다. * -이 정규식은 '0'숫자 앞에있는 숫자와 만 일치합니다. 따라서 '16'을 쓸 수 없으며 '016'이어야합니다. 아주 이상하게 들린다. – Munchkin

관련 문제