Tengo un escalar YAML que arroja el siguiente error cuando intento evaluar mi docker-compose.yml
archivo:
ERROR: formato de interpolación no válido para la opción "entorno" en el servicio "time_service": "$ {Time.now}"
YAML:
---
version: '2'
services:
time_service:
build: "."
environment:
TIME: "${Time.now}"
¿Cómo puedo mantener la misma salida de cadena como está escrita, pero evitar que el docker-compose lo interprete como una interpolación de cadena defectuosa?
escaping
docker-compose
Nathan Hanna
fuente
fuente
${}
. La interpretación la realizadocker-compose
y está escrita en Python, por lo que la etiqueta ruby también era inapropiada.Respuestas:
Estás accediendo a la
docker-compose
sustitución de variables, que está bien documentada aquí :docker-compose
está escrito en Python, como puede ver en github , el mecanismo de duplicación para obtener el significado original de los caracteres especiales se puede encontrar en muchos programas, necesitaba usar esto yo mismo, mientras programaba, en 1984.fuente
Encontré la respuesta copiando la sugerencia de
%
personajes en esta publicaciónRequiere un signo de dólar doble
$$
.Así que necesitaba
"$${Time.now}"
, que se evalúa como"${Time.now}"
fuente