Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.7K
Visualizações
asp.net core anula las cadenas de conexión a través de variables ENV

Tengo una API central 2.2 de asp.net implementada. He creado una imagen acoplable. Me gustaría anular las cadenas de conexión en el archivo appsettings.json.

¿Hay alguna forma de hacerlo? Intenté a través de variables de entorno cuando inicio el contenedor con el comando docker container run -e "ConnectionStrings:DefaultConnection={...here goes the connection string}"

También tengo builder.AddEnvironmentVariables(); en mi Startup.cs pero la cadena de conexión en mi appsetting.json no se reemplaza.

Lo verifiqué dentro del contenedor, appsetting.json está allí pero los valores no se reemplazan.

¿Alguna otra forma de cómo hacer estos casos? Gracias.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Para -e , anulará el entorno del sistema que cambiará la cadena de conexión cuando lo recupere del código, no afectará el contenido de appsettings.json .

Por ejemplo

  1. Suponga que tiene un appsettings.json como

     { "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-TestDockerConfiguration-416C6FD2-3531-42D6-9EDE-18AC45901208;Trusted_Connection=True;MultipleActiveResultSets=true" }, "Logging": { "LogLevel": { "Default": "Warning" } }, "AllowedHosts": "*" }
  2. Recupere la cadena de conexión mediante _configuration.GetConnectionString("DefaultConnection") como

     public class HomeController : Controller { private readonly IConfiguration _configuration; public HomeController(IConfiguration configuration) { _configuration = configuration; } public IActionResult Index() { return Ok(_configuration.GetConnectionString("DefaultConnection")); //return View(); } }
  3. Para docker run -it -p 8888:80 dockerconfiguration , devolverá "Server=(localdb)\\mssqllocaldb;Database=aspnet-TestDockerConfiguration-416C6FD2-3531-42D6-9EDE-18AC45901208;Trusted_Connection=True;MultipleActiveResultSets=true" para Acción de índice

  4. Para docker run -it -p 8888:80 dockerconfiguration -e "ConnectionStrings:DefaultConnection"="testsqlstring" , devolverá testsqlstring

  5. Por lo tanto, si solo desea anular el valor en appsettings.json durante el tiempo de ejecución, solo necesita especificar como el Paso 4

Si prefiere cambiar el archivo appsettings.json en el contenedor docker, puede seguir los pasos a continuación

  1. Instale el comando vi con apt-get install vim -y
  2. Ejecute docker exec -it 43ea835776dd /bin/bash para ir al contenedor
  3. Ejecute ls para enumerar los archivos y busque appsettings.json
  4. Ejecute vi appsettings.json para modificar el contenido.
  5. Ejecute cat appsettings.json para verificar si el contenido ha cambiado
  6. Ejecute exit y acceda a Home/Index para verificar el resultado.
over 4 years ago · Santiago Trujillo Relatório

0

appsetting.json nunca se cambia, sin embargo, según la jerarquía, los valores de las variables se anulan. Eche un vistazo a los ejemplos en https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-2.2#conventions . Funciona bastante bien. Quizás solo para asegurarse de que no rompió algo debido a la ejecución de la línea de comandos, puede intentar asignar variables de entorno a través de docker-compose. La regla general es que el patrón que usa para la "clave" debe coincidir (con la ayuda de __ en lugar de : con lo que tiene en el archivo json, para que se anule.

over 4 years ago · Santiago Trujillo Relatório

0

Probé sin las comillas para la sección ConnectionStrings y funcionó (en una consola de PowerShell.

 docker run -d -p 8080:80 --name letscosmosweb -e ConnectionStrings__ProductsDbContext=$key letscosmosweb:v1

La variable $key contiene la cadena de conexión

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda