Skip to content

Instantly share code, notes, and snippets.

@marianobrc
Last active April 9, 2022 18:34
Show Gist options
  • Save marianobrc/e74c29f789279a0dc9c0b0847c3270b5 to your computer and use it in GitHub Desktop.
Save marianobrc/e74c29f789279a0dc9c0b0847c3270b5 to your computer and use it in GitHub Desktop.
A docker-compose file to run django with sqs and celery locally.
version: '3.5'
services:
db:
image: postgres:10
restart: always
ports:
- ${DB_PORT}:${DB_PORT}
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- DB_NAME=${DB_NAME}
- DB_USER=${DB_USER}
- DB_PASSWORD=${DB_PASSWORD}
volumes:
- ./db/psql-init/db.sql:/docker-entrypoint-initdb.d/db.sql
- postgres_data:/var/lib/postgresql/data/
app:
build: &app-image
context: ../
dockerfile: ./docker/app/Dockerfile
target: dev
restart: always
depends_on:
- db
environment: &app-env
- DJANGO_SETTINGS_MODULE=${DJANGO_SETTINGS_MODULE}
- DB_HOST=${DB_HOST}
- DB_PORT=${DB_PORT}
- DB_NAME=${DB_NAME}
- DB_USER=${DB_USER}
- DB_PASSWORD=${DB_PASSWORD}
- AWS_ACCOUNT_ID=${AWS_ACCOUNT_ID}
- AWS_REGION_NAME=${AWS_REGION_NAME}
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- CELERY_BROKER_URL=${CELERY_BROKER_URL}
- CELERY_TASK_ALWAYS_EAGER=${CELERY_TASK_ALWAYS_EAGER}
volumes: &code
- ../:/home/web/code
ports:
- 8000:8000
broker:
image: softwaremill/elasticmq-native
ports:
- 9324:9324
- 9325:9325
volumes:
- ./broker/custom.conf:/opt/elasticmq.conf
restart: always
worker-default:
build: *app-image
image: worker-default
restart: always
command: start-celery-worker.sh default
depends_on:
- db
- broker
environment: *app-env
volumes: *code
volumes:
postgres_data:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment