Docker Compose の service に AWS のクレデンシャルを渡す

dockeraws

ローカルで Docker コンテナを動かす際に AWS のクレデンシャルを渡すため ~/.aws をマウントすることがあるが、 Docker Compose でも volumes で同様のことができる。 また、secrets というのもあって、 ドキュメント によると Swarm 前提の機能に見えるが、実際はスタンドアロンで動く。 ただし、これは開発用のためのもので実際はただ bind しているだけのようだ。

version: '3'

secrets:
  aws_creds:
    file: ~/.aws

services:
  aws_cli:
    image: amazon/aws-cli:2.9.0
    secrets:
      - source: aws_creds
        target: /root/.aws
    # volumes:
    #  - type: bind
    #    source: ~/.aws
    #    target: /root/.aws
    environment:
      AWS_PROFILE: xxxx
    command:
      - sts
      - get-caller-identity