我有一个要被 jetty 化的.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;'
最佳答案
您正在使用文件方法,但是我建议使用命名的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
然后结果看起来就像所有对大小写敏感的环境变量一样:
如果希望使用撰写文件来实现此目的,则可以在
docker-compose.yml
文件中以及每个环境中执行此操作:version: '3'
services:
myservice:
image: 'microsoft/aspnetcore'
env_file:
- ./myenv-dev.list
请参阅更多示例:
另一方面,您可能要考虑稍后使用像
AWS Parameter Store
或Secrets Manager
这样的 secret 管理系统,将您的数据库密码和其他敏感信息存储在安全的地方,并使用pstore之类的动态获取密码: