# Pasar la clave API de correo electrónico al contenedor sin codificarla en app.yml

**URL:** <https://meta.discourse.org/t/passing-email-api-key-to-container-without-hardcoding-in-app-yml/349002>\
**Category:** Product Support\
**Created:** [25 Enero, 2025 22:43 UTC](https://meta.discourse.org/t/passing-email-api-key-to-container-without-hardcoding-in-app-yml/349002 "2025-01-25T22:43:46Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![0xDBFB7](https://avatars.discourse-cdn.com/v4/letter/0/53a042/32.png) [@0xDBFB7](https://meta.discourse.org/u/0xDBFB7)\
**Post date:** [25 Enero, 2025 22:43 UTC](https://meta.discourse.org/t/passing-email-api-key-to-container-without-hardcoding-in-app-yml/349002/1 "2025-01-25T22:43:46Z")

</div>

¡Hola! Tengo la aplicación de configuración de Discourse, `app.yml`, registrada en un repositorio de Git (junto con el resto de la configuración del servidor).

Naturalmente, me gustaría mantener `DISCOURSE_SMTP_PASSWORD` fuera del repositorio de Git, así que quiero pasarlo por separado. ¿Hay alguna forma recomendada de hacerlo?

He intentado:

Usar la sección `env_file:` de docker-compose, junto con `env:`, para intentar pasar un archivo separado:

```plaintext
env_file:
  - path: /var/discourse/containers/creds.env

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en
  ...

====== creds.env ======
DISCOURSE_SMTP_PASSWORD="..."

```

pero no he podido conseguir que docker reconozca la variable de entorno.

Intenté pasarlo a ` --docker-args`,  
`sudo /var/discourse/launcher rebuild app --docker-args DISCOURSE_SMTP_PASSWORD=$DISCOURSE_SMTP_PASSWORD`  
Pero eso falla inmediatamente:  
`docker: invalid reference format: repository name must be lowercase.`

Gracias por este maravilloso software y espero que todos estéis bien :)))

---

_[View the full topic](https://meta.discourse.org/t/passing-email-api-key-to-container-without-hardcoding-in-app-yml/349002)._
