I have a dockerized Django application and related services running on an EC2 ubuntu instance. The static files are being stored and fetched from S3 using django-storages library and are working fine when I start the services using docker-compose. But recently I tried to set it up on 2 different EC2 servers running under same security group using Docker Swarm, and none of the S3 static file links are working. All of them throw this error in browser console:
Failed to load resource: the server responded with a status of 403 (Forbidden)
The only changes I made were in the Compose file to set it up for Swarm. Code was left unchanged. So what does Docker Swarm do differently compared to docker-compose, that S3 is not able to authorize?
I can’t figure out what’s causing this. Any help will be appreciated!
Some additional info:
- Docker Version: 20.10.7, build f0df350
- Docker Compose: 1.29.2
- Architecture: ARM64
- OS: Ubuntu 20.04