У меня есть кластер K8 API-интерфейсов .Net Core 8, который развертывается с помощью сценария yml действия Github и использует файлы манифеста K8, созданные из файла docker-compose.
У меня есть файл appsettings.json, для которого я хочу переопределить поля. В моем ProgramExtensions.cs я гарантирую, что пока я устанавливаю их как переменные среды, они будут использоваться вместо значения appsettings.
Я не уверен, куда бы я добавил эти переменные. Я попытался добавить их в секреты Github, а затем использовать их в workflow.yml действий Github, как показано ниже:
jobs:
build-and-push:
runs-on: ubuntu-latest
env:
DATABASEUSERNAME : ${{ secrets.DATABASEUSERNAME }}
DATABASEPASSWORD : ${{ secrets.DATABASEPASSWORD }}
После развертывания API дает сбой, поскольку он не может найти секреты в приведенном выше фрагменте. Может ли кто-нибудь указать мне, как правильно это сделать?
Удивительно, пожалуйста, добавьте в качестве ответа
Возможно, это не единственное решение, но, как предложено в документации Docker Compose, вы можете создать файл .env
вручную в качестве шага рабочего процесса и передать секреты своего репозитория.
Файл
.env
в Docker Compose — это текстовый файл, используемый для определения переменных среды, которые должны быть доступны контейнерам Docker при запуске Docker Compose. Этот файл обычно содержит пары «ключ-значение» переменных среды и позволяет централизовать конфигурацию и управлять ею в одном месте. Файл.env
полезен, если вам нужно сохранить несколько переменных среды.
Пример:
steps:
- run: |
touch .env
echo VARIABLE=${{ secrets.VARIABLE }} >> .env
Могут быть и другие способы, но пробовали ли вы создать файл
.env
вручную в качестве шага рабочего процесса и передать секреты своего репозитория? Пример:- run: touch .env && echo VARIABLE=${{ secrets.VARIABLE }} >> .env
. Это рекомендуемый способ в документации Docker Compose