문서의 이전 판입니다!
0.11 버전부터 4566 포트로 모든 서비스에 접근 가능하다.EDGE_PORT 환경변수값으로 조정 가능하다.version: "3"
services:
localstack:
image: localstack/localstack:0.12.6 # 혹시나 자동 버전업으로 인한 오류를 막기위해 tag 명시
container_name: localstack
ports:
- "4566:4566"
- "4571:4571"
environment:
- SERVICES=sns,sqs,s3
- DEFAULT_REGION=ap-northeast-2
- HOSTNAME=localhost
- DATA_DIR=/tmp/localstack/data
- DOCKER_HOST=unix:///var/run/docker.sock
volumes:
- "${TMPDIR:-/tmp/localstack}:/tmp/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
setup-localstack:
image: amazon/aws-cli:2.1.27
environment: # Key는 dummy 값임. 무의미한 Key를 지정한 것임.
- AWS_ACCESS_KEY_ID=EXAMPLE123
- AWS_SECRET_ACCESS_KEY=EXAMPLE123
- AWS_DEFAULT_REGION=ap-northeast-2
entrypoint: /bin/sh /tmp/init-aws.sh
volumes:
- ./init-aws.sh:/tmp/init-aws.sh
depends_on:
- localstack
docker-compose.yml과 동일 디렉토리에 init-aws.sh 파일을 둔다.sleep 30 # /usr/local/bin/aws 호출 echo "## creating topics" aws sns create-topic --name my-sns --endpoint-url=http://localstack:4566 echo "## creating queues" aws sqs create-queue --queue-name my-sqs --endpoint-url=http://localstack:4566 aws sns subscribe --topic-arn arn:aws:sns:ap-northeast-2:000000000000:my-sns \ --protocol sqs --notification-endpoint http://localstack:4566/queue/my-sqs \ --endpoint-url=http://localstack:4566
TMPDIR=/private$TMPDIR docker-compose up
/localstack/localstack 에서는 deprecated 되었으며,arn:aws:sns:[region]:000000000000 형태이다._) 이 들어있을 경우 올바로 네트워크 접속이 안됐음.