如何在环境文件中放置连接字符串

时间:2018-12-18 08:17:38

标签: docker .net-core environment-variables

我有一个.net核心应用程序要进行码头化。伴随着它是一个环境文件,我试图用以下格式定义连接字符串:

Server=localhost;Port=3306;Database=myDb;Uid=root;Pwd=root;allow user variables=true;SslMode=none;maxpoolsize=100;Convert Zero Datetime=true;

我已经在环境文件中尝试了以下两个方法,但均未成功:

connectionString="Server=localhost;Port=3306;Database=myDb;Uid=root;Pwd=root;allow user variables=true;SslMode=none;maxpoolsize=100;Convert Zero Datetime=true;"

connectionString='Server=localhost;Port=3306;Database=myDb;Uid=root;Pwd=root;allow user variables=true;SslMode=none;maxpoolsize=100;Convert Zero Datetime=true;'

1 个答案:

答案 0 :(得分:0)

您使用的是

文件方法,但我建议使用命名的env文件,这样您就可以区分,可以按照以下示例进行操作:

使用您的env var定义创建myenv-dev.list文件,例如针对您的 dev 环境,然后针对所有环境-dev / test / uat / prod,例如:

ASPNETCORE_ENVIRONMENT=dev
connectionString="Server=localhost;Port=3306;Database=myDb;Uid=root;Pwd=root;allow user variables=true;SslMode=none;maxpoolsize=100;Convert Zero Datetime=true;"
...

然后将其传递给docker-让我们用printenv进行验证:

docker run -it --env-file ./myenv-dev.list microsoft/aspnetcore printenv

然后结果看起来就像所有区分大小写环境变量一样:

  

ASPNETCORE_ENVIRONMENT = dev   connectionString =“ Server = localhost; Port = 3306; Database = myDb; Uid = root; Pwd = root;允许用户变量= true; SslMode = none; maxpoolsize = 100;转换零日期时间= true;”

     

...

如果您希望使用撰写文件来实现此功能,则可以在docker-compose.yml文件中以及每个环境中执行此操作:

version: '3'
services:
  myservice:
    image: 'microsoft/aspnetcore'
    env_file:
     - ./myenv-dev.list

有关更多示例,请访问:

另一方面,您可能想考虑以后使用诸如AWS Parameter StoreSecrets Manager之类的秘密管理系统来将数据库密码和其他敏感信息存储在安全的地方,并通过某些方式动态获取这些密码。就像pstore: