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.4K
Visualizações
ASPNETCORE_ENVIRONMENT en Docker

Tengo problemas para configurar la variable ASPNETCORE_ENVIRONMENT al ejecutar mi proyecto en un contenedor docker . El problema es que el valor siempre se establece/sobrescribe en "Desarrollo" .

He intentado configurar la variable de entorno en mi Dockerfile usando

 ENV ASPNETCORE_ENVIRONMENT test

también intenté configurar la variable de entorno en mi archivo docker-compose usando

 environment: - ASPNETCORE_ENVIRONMENT=test

Cuando configuro cualquier otra variable de entorno , funciona , por ejemplo:

 environment: - OTHER_TEST_VARIABLE=test

Supongo que el valor de la variable ASPNETCORE_ENVIRONMENT se sobrescribe en alguna parte, pero tengo dificultades para encontrar dónde.

He agregado compatibilidad con Docker a un proyecto existente y estoy ejecutando el proyecto directamente a través de la opción de composición de Docker/Docker de Visual Studio.

El proyecto se ejecuta en Asp Net Core 2.1

Gracias por adelantado

Mi launchSettings.json:

 { "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:53183/", "sslPort": 0 } }, "profiles": { "Docker": { "commandName": "Docker", "launchBrowser": true, "launchUrl": "{Scheme}://localhost:{ServicePort}/api/values" } } }

También intenté agregar la configuración de la variable de entorno a launchSettings.json

 "Docker": { "commandName": "Docker", "launchBrowser": true, "launchUrl": "{Scheme}://localhost:{ServicePort}/api/values", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "test" } }

Mi alojamiento web:

 public static IWebHost BuildWebHost(string[] args) { return WebHost.CreateDefaultBuilder(args) .ConfigureAppConfiguration((builderContext,config) => { config.AddEnvironmentVariables(); }) .ConfigureLogging((hostingContext, logging) => { logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging")); logging.AddConsole(); logging.AddDebug(); }) .UseStartup<Startup>() .Build(); }

Mi docker-compose.yml

 version: '3.4' services: api: image: ${DOCKER_REGISTRY}api build: context: . dockerfile: API/Dockerfile environment: - ASPNETCORE_ENVIRONMENT=test

Mi Dockerfile:

 FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base WORKDIR /app EXPOSE 80 FROM microsoft/dotnet:2.1-sdk AS build WORKDIR /src COPY API/API.csproj API/ RUN dotnet restore API/API.csproj COPY . . WORKDIR /src/API RUN dotnet build API.csproj -c Release -o /app FROM build AS publish RUN dotnet publish API.csproj -c Release -o /app FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "API.dll"]

Aquí hay una lista de las variables de entorno en el contenedor.

 C:\Users\Administrator>docker exec -ti d6 /bin/bash root@d6f26d2ed2c3:/app# printenv HOSTNAME=d6f26d2ed2c3 ASPNETCORE_URLS=http://+:80 test1=asdasd test2=dasdasd test3=dasdasd PWD=/app HOME=/root NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages DOTNET_USE_POLLING_FILE_WATCHER=1 ASPNETCORE_VERSION=2.1.3 DOTNET_RUNNING_IN_CONTAINER=true TERM=xterm SHLVL=1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ASPNETCORE_ENVIRONMENT=Development _=/usr/bin/printenv root@d6f26d2ed2c3:/app#
over 4 years ago · Santiago Trujillo
7 Respostas
Responde à pergunta

0

Tuve el mismo problema, uso Rider, tenía la variable de entorno solo en el archivo docker-compose en la sección de entorno de servicio.

Lo que estaba sucediendo de mi parte era que no tenía ConnectionStrings configurado en mi appsettings.Development.json , por lo que se estableció de forma predeterminada en ConnectionStrings del archivo appsettings.json .

Después de agregar la cadena de conexión adecuada al archivo json de desarrollo, todo funcionó bien con el comando docker-compose up. Espero que esto ayude a alguien también.

over 4 years ago · Santiago Trujillo Relatório

0

Me funciona configurando ASPNETCORE_ENVIRONMENT con el comando dotnet CoreDocker.dll --environment="X"

Intente cambiar dockerfile como se muestra a continuación:

ENTRYPOINT ["dotnet", "CoreDocker.dll", "--environment=X"]

over 4 years ago · Santiago Trujillo Relatório

0

Gracias por sus comentarios, resolví mi problema. Solo fue mi error.

Mi problema fue que cuando agregué Docker-Support a mi proyecto, ya tenía un Dockerfile incluido en el proyecto.

Cuando VS generó archivos para la compatibilidad con Docker, se creó un segundo Dockerfile y uno de los Dockerfiles se renombró como "Dockerfile.original".

Estaba usando el "Dockerfile" visible en el explorador de soluciones (que de alguna manera estaba asignado al archivo "Dockerfile.original" en el sistema de archivos)

Parece que, en segundo plano, mis cambios se escribieron en "Dockerfile.original", pero este archivo no se usó mientras se ejecutaba docker-compose. Usó el Dockerfile generado vacío que no estaba visible en el Explorador de soluciones.

over 4 years ago · Santiago Trujillo Relatório

0

En el archivo docker-compose.override.yml, debería encontrar algo así:

 version: '3.4' services: webapplication1: environment: - ASPNETCORE_ENVIRONMENT=Development # <==
over 4 years ago · Santiago Trujillo Relatório

0

Herramientas de Visual Studio Docker

En caso de que utilice la integración de Docker para Visual Studio (contenedor de depuración desde dentro de VS), debe prestar especial atención a los valores predeterminados.

Variables de entorno predeterminadas

Cuando las herramientas inician el depurador con un comando docker run [..] , proporciona un argumento -e "ASPNETCORE_ENVIRONMENT=Development" . Puede sobrescribir esta variable de entorno en Properties/launchSettings.json .

Aunque no puedo verlo en el comando emitido, en mis pruebas también experimenté otra variable predeterminada ASPNETCORE_URLS=http://+:80 .

Un buen punto de partida para leer sobre VS Docker Tooling es esta publicación de blog y la documentación oficial .

Host genérico .Net-Core 3.0

Cuando usa el host genérico en .Net-Core 3.0, puede encontrar problemas cuando usa la nueva variable genérica DOTNET_ENVIRONMENT , ya que entonces tendrá dos entornos especificados. Esto puede ser difícil de depurar. Entonces, lo que me gusta hacer es desactivar todos los valores predeterminados inicialmente y comenzar de nuevo en mi Properties/launchSettings.json :

 { "$schema": "http://json.schemastore.org/launchsettings.json", "profiles": { "Docker": { "commandName": "Docker", "environmentVariables": { // Overwrite default VS Docker Tools environment variables first (ASPNETCORE_ENVIRONMENT=Development; ASPNETCORE_URLS=http://+:80) // https://www.paraesthesia.com/archive/2019/06/18/tips-on-container-tools-for-visual-studio/ "ASPNETCORE_ENVIRONMENT": "", "ASPNETCORE_URLS": "", "DOTNET_ENVIRONMENT": "Production", "DOTNET_URLS": "http://+:80" } } } }
over 4 years ago · Santiago Trujillo Relatório

0

Para quienes trabajan con el contenedor de linux:

ENTRYPOINT export ASPNETCORE_ENVIRONMENT=Development && exec dotnet "app.dll"

over 4 years ago · Santiago Trujillo Relatório

0

Muy estúpido error que cometí.

Tengo VS 2019 y agregué compatibilidad con Docker a mi proyecto. Entonces, tengo un Dockerfile para mi WebApi y un archivo docker-compose .

Básicamente, probé todo lo que dijeron anteriormente, pero nada funcionó para mí.

Lo que descubrí es que había un docker-compose.override.yml que estaba configurando estas variables env. Espero que esto ayude a alguien.

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