kpe*_*nka 8 amazon-web-services amazon-ecs docker docker-compose
当我尝试运行docker compose up
使用 Docker 的 ECS 集成将基础设施部署到 AWS 时,出现以下错误。请注意,我在 Pop!_OS 21.10 上运行它,它基于 Ubuntu。
NoCredentialProviders: no valid providers in chain. Deprecated. For verbose messaging see aws.Config.CredentialsChainVerboseErrors
基于对 SO 和其他网站的详尽搜索,我尝试过的事情:
~/.aws/config
文件~/.aws/credentials
格式正确,位于正确的位置,并且具有正确的权限AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
,AWS_REGION
均设置正确/root/.aws
AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
,AWS_REGION
/etc/systemd/system/docker.service.d/aws-credentials.conf
并填充它:[Service]
Environment="AWS_ACCESS_KEY_ID=********************"
Environment="AWS_SECRET_ACCESS_KEY=****************************************"
Run Code Online (Sandbox Code Playgroud)
docker -l debug compose up
(它提供的唯一额外信息是DEBUG deploying on AWS with region="us-east-1"
我已经没有选择了。如果有人有任何其他想法可以尝试,我很想听听。谢谢!
更新:我现在也尝试了以下方法,但没有成功:
Environment="AWS_SHARED_CREDENTIALS_FILE=/home/kespan/.aws/credentials
Environment="AWS_SHARED_CREDENTIALS_FILE=/home/kespan/.aws/credentials
设置/etc/systemd/system/docker.service.d/override.conf
Environment="AWS_SESSION_TOKEN=..."
到override.conf
另请注意 - 每次我/etc/systemd/system/docker.service.d/
在运行下添加/修改文件后:
sudo systemctl daemon-reload
sudo systemctl restart docker
Run Code Online (Sandbox Code Playgroud)
编辑:
这是 Dockerfile 之一(抓取器和调度程序都使用相同的 Dockerfile):
FROM denoland/deno:alpine
WORKDIR /app
USER deno
COPY deps.ts .
RUN deno cache --unstable --no-check deps.ts
COPY . .
RUN deno cache --unstable --no-check mod.ts
RUN mkdir -p /var/tmp/log
CMD ["run", "--unstable", "--allow-all", "--no-check", "mod.ts"]
Run Code Online (Sandbox Code Playgroud)
这是我的 docker-compose (一些内容已编辑):
version: '3'
services:
grafana:
container_name: grafana
image: grafana/grafana
ports:
- "3000:3000"
volumes:
- grafana:/var/lib/grafana
deploy:
replicas: 1
scheduler:
image: scheduler
x-aws-pull-credentials: "arn..."
container_name: scheduler
environment:
DB_CONNECTION_STRING: "postgres://..."
SQS_URL: "..."
SQS_REGION: "us-east-1"
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
deploy:
replicas: 1
scraper:
image: scraper
x-aws-pull-credentials: "arn..."
container_name: scraper
environment:
DB_CONNECTION_STRING: "postgres://..."
SQS_URL: "..."
SQS_REGION: "us-east-1"
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
deploy:
replicas: 1
volumes:
grafana:
Run Code Online (Sandbox Code Playgroud)
您是否尝试过使用AWS 实验室提供的Amazon ECS 本地容器终端节点工具?它允许您为 docker-compose 配置创建覆盖文件,并且它将模拟您将在 AWS 中使用的 ECS 端点和 IAM 角色。
这是使用您工作站上的本地 AWS 凭证完成的。更多信息请访问AWS 博客。
归档时间: |
|
查看次数: |
844 次 |
最近记录: |