我有一个应用程序使用:
基于码头
在Dockerfile中我有:
RUN aws s3 cp s3://mylambda/distilBERT distilBERT.tar.gz导致错误消息:
Step 6/8 : RUN aws s3 cp s3://mylambda/distilBERT distilBERT.tar.gz
---> Running in 786873b916db
fatal error: Unable to locate credentials
Error: InferenceFunction failed to build: The command '/bin/sh -c aws s3 cp s3://mylambda/distilBERT distilBERT.tar.gz' returned a non-zero code: 1我需要找到一种方法,以一种安全的方式存储凭证。有可能有GitHub的秘密什么的吗?
谢谢
发布于 2021-12-10 21:36:51
默认情况下,Docker无法访问主机上运行的.aws文件夹。您可以将AWS凭据作为环境变量传递给Docker映像:
ENV AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
ENV AWS_SECRET_ACCESS_KEY=...请记住,在Dockerfile中硬编码AWS凭据是一种糟糕的做法。为了避免这种情况,可以使用docker run -e MYVAR1或docker run --env MYVAR2=foo参数在运行时传递环境变量。其他解决方案是为环境变量使用一个.env文件。
更复杂的解决方案是从Docker映像中的主机映射~/.aws文件夹的卷。
发布于 2021-12-10 21:59:35
我的解决方案可能要长一点,但我觉得它解决了你的问题,而且
步骤:
在
- name: Configure AWS credentials
echo "
[default]
aws_access_key_id = $ACCESS_KEY
aws_secret_access_key = $SECRET_ACCESS_KEY
" > credentials
with:
ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY_ID }}
SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}COPY credentials credentials
RUN mkdir ~/.aws
RUN mv credentials ~/.aws/credentials更改凭据只需要更改github操作。
https://stackoverflow.com/questions/70310563
复制相似问题