내 docker-compose.yml
파일 을 평가하려고 할 때 다음 오류를 발생시키는 YAML 스칼라가 있습니다.
오류 : “time_service”서비스의 “environment”옵션에 대한 잘못된 보간 형식 : “$ {Time.now}”
YAML :
---
version: '2'
services:
time_service:
build: "."
environment:
TIME: "${Time.now}"
작성된 것과 동일한 문자열 출력을 유지하지만 docker-compose가 잘못된 문자열 보간으로 해석하지 않도록하려면 어떻게해야합니까?
답변
여기에docker-compose
잘 문서화되어 있는 변수 대체를 치고 있습니다 .
$VARIABLE
및${VARIABLE}
구문이 모두 지원됩니다.${VARIABLE-default}
및과 같은 확장 된 셸 스타일 기능${VARIABLE/foo/bar}
은 지원되지 않습니다.당신은 사용할 수있는
$$
구성이 리터럴 달러 기호를 필요로 할 때 (이중 달러 기호). 이것은 또한 Compose가 값을 보간하는 것을 방지하므로를 사용하면 Compose에서$$
처리하지 않으려는 환경 변수를 참조 할 수 있습니다.
docker-compose
은 Python으로 작성되었습니다. github 에서 볼 수 있듯이 특수 문자의 원래 의미를 얻기위한 두 배의 메커니즘은 많은 프로그램에서 찾을 수 있습니다. 1984 년으로 거슬러 올라가는 프로그래밍 중에 직접 사용해야했습니다.