作为构建我的docker容器的过程的一部分,我需要从s3存储桶中提取一些文件,但我仍然获得fatal error: Unable to locate credentials
,即使现在我将凭据设置为ENV
vars(尽管想知道一个更好的方法来做到这一点)
因此,在构建容器时,我运行
docker build -t my-container --build-arg AWS_DEFAULT_REGION="region" --build-arg AWS_ACCESS_KEY="key" --build-arg AWS_SECRET_ACCESS_KEY="key" . --squash
在我的Dockerfile中我有
ARG AWS_DEFAULT_REGION
ENV AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION
ARG AWS_ACCESS_KEY
ENV AWS_ACCESS_KEY=$AWS_ACCESS_KEY
ARG AWS_SECRET_ACCESS_KEY
ENV AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
RUN /bin/bash -l -c "aws s3 cp s3://path/to/folder/ /my/folder --recursive"
有谁知道如何解决这个问题(我知道有一个选项可以添加一个配置文件,但这似乎是一个不必要的额外步骤,因为我应该能够从ENV读取)。
答案 0 :(得分:4)
环境变量的名称为AWS_ACCESS_KEY_ID
vs AWS_ACCESS_KEY
您可以查看amazon doc
的完整列表AWS CLI支持以下变量
AWS_ACCESS_KEY_ID
- AWS访问密钥。
AWS_SECRET_ACCESS_KEY
- AWS密钥。访问和密钥 变量覆盖存储在凭证和配置文件中的凭证。
AWS_SESSION_TOKEN
- 会话令牌。只有在需要时才需要会话令牌 您正在使用临时安全凭证。
AWS_DEFAULT_REGION
- AWS区域。此变量会覆盖默认值 正在使用的配置文件的区域,如果已设置。
AWS_DEFAULT_PROFILE
- 要使用的CLI配置文件的名称。这可以是 存储在凭证或配置文件中的配置文件的名称,或默认为 使用默认配置文件。
AWS_CONFIG_FILE
- CLI配置文件的路径。
答案 1 :(得分:0)
滥用预定义的* _PROXY参数使凭据数据对于“ docker history ..”调用完全不可见:-)
FROM mcr.microsoft.com/windows/servercore:ltsc2019
WORKDIR "C:\zenonSetup"
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
RUN net use X: \\ATSZG-WKS210\zenonSetup $Env:FTP_PROXY /user:$Env:HTTP_PROXY;\
Start-Process 'X:\SetupPrerequisites\Microsoft Visual C++ 2010 Redistributable\vstor_redist.exe' '/quiet /install' -PassThru | Wait-Process;\
Start-Process 'X:\SetupPrerequisites\Microsoft Visual C++ 2013 Redistributable (x86)\vcredist_x86.exe' '/quiet /install' -PassThru | Wait-Process;\
Start-Process 'X:\SetupPrerequisites\Microsoft Visual C++ 2013 Redistributable (x64)\vcredist_x64.exe' '/quiet /install' -PassThru | Wait-Process;\
Start-Process 'X:\SetupPrerequisites\Microsoft Visual C++ 2017 Redistributable (x86)\vc_redist.x86.exe' '/quiet /install' -PassThru | Wait-Process;\
Start-Process 'X:\SetupPrerequisites\Microsoft Visual C++ 2017 Redistributable (x64)\vc_redist.x64.exe' '/quiet /install' -PassThru | Wait-Process;\
Start-Process 'X:\SetupPrerequisites\Microsoft Visual Studio 2017 Remote Tools\VS_RemoteTools.exe' '/quiet /install' -PassThru | Wait-Process;\
Start-Process 'X:\SetupPrerequisites\CodeMeter Runtime Kit (x64)\CodeMeterRuntime64.exe' '/q' -PassThru | Wait-Process;\
Start-Process 'X:\SetupPrerequisites\VBA\x86\Vba71.msi' '/qn' -PassThru | Wait-Process;\
Start-Process 'X:\SetupPrerequisites\VBA\x86\Vba71_1033.msi' '/qn' -PassThru | Wait-Process;\
Start-Process 'X:\SetupPrerequisites\VBA\x64\Vba71.msi' '/qn' -PassThru | Wait-Process;\
Start-Process 'X:\SetupPrerequisites\VBA\x64\Vba71_1033.msi' '/qn' -PassThru | Wait-Process;\
Start-Process 'X:\SetupPrerequisites\dotnet-runtime-2.1.5-win-x86.exe' '/quiet /install' -PassThru | Wait-Process;\
Start-Process 'X:\SetupPrerequisites\dotnet-runtime-2.1.5-win-x64.exe' '/quiet /install' -PassThru | Wait-Process;\
Start-Process 'X:\MSI\commonX86.msi' '/qn' -PassThru | Wait-Process;\
Start-Process 'X:\MSI\commonX64.msi' '/qn' -PassThru | Wait-Process;\
Start-Process 'X:\MSI\commonoemX86.msi' '/qn' -PassThru | Wait-Process;\
Start-Process 'X:\MSI\scadaX86.msi' '/qn CDPROP_TYPE=RT CDPROP_EDITION=SUPERVISOR INSTALLDIR_X86=C:\zenonSetup\32 INSTALLDIR_X64=C:\zenonSetup\64 ADDLOCAL=ALL' -PassThru | Wait-Process;\
Start-Process 'X:\MSI\scadaX64.msi' '/qn CDPROP_TYPE=RT CDPROP_EDITION=SUPERVISOR INSTALLDIR_X86=C:\zenonSetup\32 INSTALLDIR_X64=C:\zenonSetup\64 ADDLOCAL=ALL' -PassThru | Wait-Process;\
Start-Process 'regedit' '/s /q X:\RegistryDataDir.reg' -Wait -NoNewWindow;\
Copy-Item -Path 'X:\settings.ps1' -Destination '.\settings.ps1';\
Copy-Item -Path 'X:\templates.ps1' -Destination '.\templates.ps1';\
Copy-Item -Path 'X:\start.bat' -Destination '.\start.bat';\
Copy-Item -Path 'X:\zenonDataTemplates' -Destination '.\zenonDataTemplates' -Recurse;
ENTRYPOINT ["CMD", "/K", "C:\\zenonSetup\\start.bat"]