Quiero administrar las variables de entorno en una pila, luego el servicio puede usarlas. Por ejemplo: defino un evn tracker_ip=192.168.0.101, luego quiero usarlo en el servicio de creación.
Qué tengo que hacer
Puede haber varias respuestas según lo que intente hacer y cómo esté implementando su pila.
Usando CLI / Rancher Compose
Si está utilizando la línea de comando, puede usar la interpolación variable. Las instrucciones sobre cómo hacerlo se pueden encontrar en la documentación oficial:
https://docs.rancher.com/rancher/v1.5/en/cli/variable-interpolation/
Uso de la interfaz de usuario/catálogos de Rancher
Si desea hacerlo a través de la interfaz de usuario de Rancher, puede hacerlo creando una plantilla en un catálogo y teniendo preguntas para ingresar sus variables de entorno. Más detalles sobre cómo hacerlo aquí:
https://docs.rancher.com/rancher/v1.5/en/catalog/private-catalog/
Puede definir preguntas en el archivo rancher-compose.yml de esta manera:
version: '2' catalog: name: My Application version: v0.0.1 questions: - variable: TRACKER_IP label: Tracker IP address required: true default: 192.168.0.101 type: string
Luego puede enviar las respuestas a la sección de entorno de su plantilla docker-compose.yml para usar dentro de su imagen:
version: '2' services: web: image: myimage ports: - 8000 environment: TRACKER_IP: ${TRACKER_IP}
No hay forma de hacer exactamente lo que está preguntando, porque eso permitiría editar las variables de los contenedores en ejecución y los contenedores son inmutables. Las variables de entorno se pueden definir en los servicios, pero no se pueden definir una vez en las pilas y estar disponibles para todos los servicios.
Los secretos son algo así y se pueden compartir entre servicios, pero no se pueden editar.
Dependiendo de dónde esté asociado tracker_ip, también podría crear un servicio externo como parte de la pila. El servicio externo esencialmente solo crea una entrada de DNS en Rancher. Entonces, podría simplemente vincular su servicio al servicio external_tracker en redactar y consultar tracker
.
version: '2' services: myservice: ... link: - tracker_service:tracker ...