我正在尝试实现将数据从HL7转换为FHIR的容器(https://github.com/GoogleCloudPlatform/healthcare/tree/master/ehr/hl7/message_converter/java)在谷歌云上。然而,我无法在我的机器上本地构建容器,以便稍后部署到云中。
当我尝试使用docker:本地旋转图像时,发生的错误总是在凭据的身份验证部分
docker run --network=host -v ~/.config:/root/.config hl7v2_to_fhir_converter
/healthcare/bin/healthcare --fhirProjectId=<PROJECT_ID> --fhirLocationId=<LOCATION_ID> --
fhirDatasetId=<DATASET_ID> --fhirStoreId=<STORE_ID> --pubsubProjectId=<PUBSUB_PROJECT_ID> --
pubsubSubscription=<PUBSUB_SUBSCRIPTION_ID> --apiAddrPrefix=<API_ADDR_PREFIX>
我正在使用Windows,并且已经执行了以下命令来创建凭据:
gcloud auth application-default login
执行上述命令后,凭证保存在:中
C:UsersXXXXXXAppDataRoaminggcloudapplication_default_credentials.json
命令-v ~ / .config: /root/.config
应该使docker能够在运行映像时搜索凭据,但它没有。出现的错误是:
The Application Default Credentials are not available. They are available if running in Google
Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined
pointing to a file defining the credentials. See
https://developers.google.com/accounts/docs/application-default-credentials for more information.
我在犯什么错误?
谢谢,
容器与系统的其他部分隔离运行,这就是它的优势,这就是为什么这种打包方法如此流行的原因。
因此,如果您不将环境中的所有配置传递给容器运行时环境,例如GOOGLE_APPLICATION_CREDENTIALS env var.,那么环境中的全部配置都是无效的
我写了一篇关于这个的文章。如果有帮助,请告诉我,如果没有,我们将讨论阻塞点!