Переменные среды в Docker Compose не переопределяют appsettings.json в приложении .NET CoreC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Переменные среды в Docker Compose не переопределяют appsettings.json в приложении .NET Core

Сообщение Anonymous »

Я запускаю веб-приложение .NET Core внутри Docker с помощью Docker Compose, но у меня возникли проблемы с получением переменных среды, указанных в моем файле docker-compose.yml, для переопределения строк подключения, определенных в appsettings.json.< /p>
Несмотря на настройку переменной среды ConnectionStrings__DefaultConnection в docker-compose.yml, приложение по-прежнему использует строку подключения из appsettings.json или appsettings.Development.json, который указывает на localhost. Это приводит к ошибке подключения, когда приложение пытается подключиться к базе данных PostgreSQL, работающей в другом контейнере Docker.

Dockerfile:< /p>
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /app
EXPOSE 80

# Copy the solution file
COPY test-docker.sln ./
COPY test-docker/test-docker.csproj test-docker/

RUN dotnet restore test-docker.sln

COPY . .

# Build and publish the application
WORKDIR /app/test-docker
RUN dotnet publish -c Release -o /app/out

# Stage 2: Runtime Stage
FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY --from=build /app/out .
ENTRYPOINT ["dotnet", "test-docker.dll"]


docker-compose.yml:

services:
db:
image: postgres:15
environment:
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
POSTGRES_DB: mydatabase
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data

webapp:
image: test-docker-app
build:
context: .
dockerfile: test-docker/Dockerfile
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:80
- ConnectionStrings__DefaultConnection=Host=db;Port=5432;Database=mydatabase;Username=myuser;Password=mypassword
depends_on:
- db
ports:
- "8081:80"

volumes:
pgdata:

appsettings.Development.json:
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Port=5432;Database=mydatabase;Username=myuser;Password=mypassword"
}
}

Проблема:
при запуске приложения в докере
---> System.Net.Sockets.SocketException (99): Cannot assign requested address [::1]:5432


Подробнее здесь: https://stackoverflow.com/questions/792 ... son-in-net
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Переменные среды .NET 7 в appsettings.json
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Можем ли мы использовать один файл appsettings.json вместо поддержки нескольких версий appsettings.{environmentname}.jso
    Anonymous » » в форуме C#
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как записать данные в appsettings.json в консольном приложении (.net Core)?
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»