如何将 AWS 环境变量传递给 Nextflow 以便在 Docker 容器中使用



我想通过Docker容器运行Nextflow管道。作为管道的一部分,我想从 AWS 推送和拉取。为此,我需要将 AWS 凭证传递给容器,但我不想将它们写入映像。

Nextflow 有一个选项,可以通过 envWhitelist 选项将环境变量作为 Docker 范围的一部分传入,但是在执行此操作时我无法找到正确语法的示例。

我尝试了以下语法并收到拒绝访问错误,表明我没有正确传入变量。

docker {
enabled = true
envWhitelist = "AWS_SECRET_ACCESS_KEY, AWS_ACCESS_KEY_ID"
}

我将这些变量显式地传递到我的环境中,我可以使用 printenv 查看它们。

这种语法看起来正确吗?感谢您的任何帮助!

通常,您可以将 AWS 安全凭证保存在名为~/.aws/credentials的文件中:

AWS_SECRET_ACCESS_KEYAWS_ACCESS_KEY_ID如果未在 环境,Nextflow 将尝试从您的~/.aws/credentials~/.aws/config文件。

或者,您可以使用aws范围在 nextflow.config(或单独的配置文件)中声明您的 AWS 凭证:

aws {
accessKey = '<YOUR S3 ACCESS KEY>'
secretKey = '<YOUR S3 SECRET KEY>'
region = '<REGION IDENTIFIER>'
}

您还可以使用 IAM 实例角色来提供您的凭证。

最新更新