🛠️ Utilizando o S3 com LocalStack via Docker Compose

📌 Objetivo

Este guia ensina como:

  • Subir o LocalStack usando Docker Compose
  • Criar buckets S3 locais
  • Interagir com o S3 usando a AWS CLI
  • Usar o S3 local em sua aplicação (ex: Java/Spring Boot)

✅ Pré-requisitos

  • Docker e Docker Compose instalados
  • AWS CLI instalado
  • Editor de texto ou IDE

📁 Estrutura do Projeto

├── docker-compose.yml
├── localstack/
└── README.md (opcional)


🧱 1. Criar o docker-compose.yml

version: '3.8'

services:
  localstack:
    image: localstack/localstack:latest
    container_name: localstack
    ports:
      - "4566:4566"
    environment:
      - SERVICES=s3
      - DEBUG=1
      - DATA_DIR=/tmp/localstack/data
      - AWS_ACCESS_KEY_ID=test
      - AWS_SECRET_ACCESS_KEY=test
      - DEFAULT_REGION=us-east-1
    volumes:
      - ./localstack:/tmp/localstack
      - /var/run/docker.sock:/var/run/docker.sock

2. Subir o ambiente

docker-compose up -d

3. Configurar a AWS CLI

Execute:

aws configure

Use credenciais fictícias:

AWS Access Key ID [None]: test
AWS Secret Access Key [None]: test
Default region name [None]: us-east-1
Default output format [None]: json

4. Criar e manipular buckets S3

aws --endpoint-url=http://localhost:4566 s3 mb s3://meu-bucket

Listar buckets:

aws --endpoint-url=http://localhost:4566 s3 ls

Listar arquivos no bucket:

aws --endpoint-url=http://localhost:4566 s3 ls s3://meu-bucket/

5. Configurar aplicação Java/Spring Boot

No application.properties:

cloud.aws.credentials.accessKey=test
cloud.aws.credentials.secretKey=test
cloud.aws.region.static=us-east-1
cloud.aws.s3.endpoint=http://localhost:4566

Conclusão.

Com esse setup, você consegue simular o serviço S3 localmente com o LocalStack para testes e desenvolvimento, sem custos e com agilidade.