50.1 LocalStack for S3 (#50 Work with LocalStack)
This commit is contained in:
@ -19,6 +19,28 @@ services:
|
||||
ports:
|
||||
- 8081:8080
|
||||
|
||||
#https://medium.com/dandelion-tutorials/using-s3-localstack-with-spring-boot-and-r2dbc-5ea201a18aea
|
||||
|
||||
localstack:
|
||||
container_name: localstack
|
||||
image: localstack/localstack:latest
|
||||
environment:
|
||||
- DEBUG=1
|
||||
- USE_SSL=0
|
||||
- AWS_CBOR_DISABLE=1
|
||||
# - DOCKER_HOST=unix:///var/run/docker.sock
|
||||
- HOSTNAME=localstack
|
||||
- SERVICES=s3
|
||||
- AWS_DEFAULT_REGION=eu-north-1
|
||||
ports:
|
||||
- '4566-4583:4566-4583'
|
||||
volumes:
|
||||
# - ./tmp/lib/localstack:/tmp/lib/localstack
|
||||
- ./init-s3-bucket.sh:/etc/localstack/init/ready.d/init-s3-bucket.sh
|
||||
# - ${TEMPDIR:-/tmp/localstack}:/tmp/localstack - LEGACY (or use LEGACY_INIT_DIR=1)
|
||||
# - ./init-s3-bucket.sh:/docker-entrypoint-initaws.d/init-s3-bucket.sh - LEGACY (or use LEGACY_INIT_DIR=1)
|
||||
# - /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
volumes:
|
||||
mysql-data:
|
||||
|
||||
|
||||
6
docker-compose/support-portal/init-s3-bucket-api.sh
Normal file
6
docker-compose/support-portal/init-s3-bucket-api.sh
Normal file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
# -- > Create S3 Bucket
|
||||
echo 'Starting.....................'
|
||||
echo $(awslocal s3api create-bucket --bucket portal-user-profile-images)
|
||||
# --> List S3 Buckets
|
||||
echo $(awslocal s3api list-buckets)
|
||||
5
docker-compose/support-portal/init-s3-bucket.sh
Normal file
5
docker-compose/support-portal/init-s3-bucket.sh
Normal file
@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
# -- > Create S3 Bucket
|
||||
echo $(awslocal s3 mb s3://portal-user-profile-images)
|
||||
# --> List S3 Buckets
|
||||
echo $(awslocal s3 ls)
|
||||
43
docker-compose/support-portal/localstack.md
Normal file
43
docker-compose/support-portal/localstack.md
Normal file
@ -0,0 +1,43 @@
|
||||
## Working with LocalStack
|
||||
|
||||
1. Start docker-compose
|
||||
2. Working with AWS CLI
|
||||
- create bucket
|
||||
- `aws s3 mb s3://portal-user-profile-images --endpoint-url http://localhost:4566`
|
||||
- **or**
|
||||
- `aws s3api create-bucket --bucket portal-user-profile-images --endpoint-url http://localhost:4566 --create-bucket-configuration '{\"LocationConstraint\":\"eu-north-1\"}'`
|
||||
- will respond
|
||||
- ```
|
||||
{
|
||||
"Location": "http://portal-user-profile-images.s3.localhost.localstack.cloud:4566/"
|
||||
}
|
||||
```
|
||||
- list buckets
|
||||
- `aws s3 ls --endpoint-url http://localhost:4566`
|
||||
- `aws s3api list-buckets --endpoint-url http://localhost:4566`
|
||||
- list objects in a bucket
|
||||
- `aws s3 ls s3://portal-user-profile-images --endpoint-url http://localhost:4566` - only one level (like dir)
|
||||
- `aws s3api list-objects --bucket portal-user-profile-images --endpoint-url http://localhost:4566` - view all object info
|
||||
3. Working with `awslocal` cli inside running docker container
|
||||
- run `bash` inside container
|
||||
- `docker ps` - view container id `c60d2c36c5f9`
|
||||
- `docker exec -it c60 bash`
|
||||
- create bucket
|
||||
- `awslocal s3 mb s3://portal-user-profile-images`
|
||||
- `awslocal s3api create-bucket --bucket portal-user-profile-images --create-bucket-configuration '{"LocationConstraint":"eu-north-1"}'`
|
||||
- list buckets
|
||||
- `awslocal s3 ls`
|
||||
- `awslocal s3api list-buckets`
|
||||
- list objects in a bucket
|
||||
- `awslocal s3 ls s3://portal-user-profile-images` - only one level (like dir)
|
||||
- `awslocal s3api list-objects --bucket portal-user-profile-images` - view all object info
|
||||
5. Working with `awslocal` cli installed locally
|
||||
- install localstack cli
|
||||
- `pip install localstack`
|
||||
- `localstack --version`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user