我正在开发一些微服务。 我使用 docker-compose 进行本地测试,并通过 copilot 将内容部署到 ECS。
其中一项 NodeJS 服务现在需要 AWS CLI。
添加此内容的最佳方法是什么?
Dockerfile
FROM node:lts-buster-slim as base
RUN apt-get update
RUN apt-get install -y --no-install-recommends python build-essential curl unzip
RUN curl --insecure "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
RUN unzip awscliv2.zip
RUN ./aws/install
...
RUN npm install
问题是 AWS CLI 无法通过这种方式找到凭证,因此 NPM 安装失败。如何使凭据可用? 我尝试向 docker-compose.yml 添加一个卷,但没有成功。
我可以以某种方式提供 AWS 配置/凭证作为 ENV 变量吗?我无法在容器中运行 aws configure,因为它需要手动输入。
编辑:
有什么简单的解决办法吗?我基本上只需要 AWS CLI,因为我需要运行 aws codeartifact login
以便我可以安装私有 NPM 包。
我确定创建一个任务会解决这个问题,难道没有更简单的方法吗? 我通过 AWS-SDK 完成其他所有工作,并且我已经拥有了相关凭证。但是这一步是 NPM 安装所必需的,所以我必须使用 CLI。
编辑 2:
基本上我需要在构建阶段运行它:
aws codeartifact login --tool npm --repository xyz --domain something --region eu-west-1
我们有使用 CodeArtiact 的私有 NPM 存储库。我需要登录才能使用它。但是Docker不支持Dockerfile中的ENV vars,所以我不知道如何提供AWS凭证。
基本上这是唯一的问题。