Tengo un escalar YAML que arroja el siguiente error cuando intento evaluar mi docker-compose.ymlarchivo:
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-composey está escrita en Python, por lo que la etiqueta ruby también era inapropiada.Respuestas:
Estás accediendo a la
docker-composesustitución de variables, que está bien documentada aquí :docker-composeestá 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