1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-02-06 22:00:09 +00:00
bramw_baserow/docker-compose.yml

182 lines
4.4 KiB
YAML

version: "3"
services:
db:
container_name: db
image: postgres:11.3
environment:
- POSTGRES_USER=${DATABASE_USER:-baserow}
- POSTGRES_PASSWORD=${DATABASE_PASSWORD:-baserow}
- POSTGRES_DB=${DATABASE_NAME:-baserow}
networks:
local:
volumes:
- pgdata:/var/lib/postgresql/data
redis:
container_name: redis
image: redis:6.0
networks:
local:
mjml:
container_name: mjml
image: liminspace/mjml-tcpserver:0.10
# mjml is based off the node image which creates a non root node user we can run as
user: "1000:1000"
networks:
local:
backend:
container_name: backend
build:
dockerfile: ./backend/Dockerfile
context: .
image: baserow_backend:latest
environment:
- PUBLIC_BACKEND_URL=${PUBLIC_BACKEND_URL:-http://localhost:8000}
- PUBLIC_WEB_FRONTEND_URL=${PUBLIC_BACKEND_URL:-http://localhost:3000}
- MIGRATE_ON_STARTUP=${MIGRATE_ON_STARTUP:-true}
- SYNC_TEMPLATES_ON_STARTUP=${SYNC_TEMPLATES_ON_STARTUP:-true}
- DATABASE_USER=${DATABASE_USER:-baserow}
- DATABASE_PASSWORD=${DATABASE_PASSWORD:-baserow}
- DATABASE_NAME=${DATABASE_NAME:-baserow}
- ADDITIONAL_APPS
- MEDIA_URL=http://localhost:${MEDIA_PORT:-4000}/media/
- EMAIL_SMTP
- EMAIL_SMTP_HOST
- EMAIL_SMTP_PORT
- EMAIL_SMTP_USE_TLS
- EMAIL_SMTP_USER
- EMAIL_SMTP_PASSWORD
- FROM_EMAIL
ports:
- "${HOST_PUBLISH_IP:-127.0.0.1}:${BACKEND_PORT:-8000}:8000"
depends_on:
- db
- redis
- mjml
- media-volume-fixer
volumes:
- media:/baserow/media
networks:
local:
celery:
container_name: celery
image: baserow_backend:latest
environment:
- ADDITIONAL_APPS
- EMAIL_SMTP
- EMAIL_SMTP_HOST
- EMAIL_SMTP_PORT
- EMAIL_SMTP_USE_TLS
- EMAIL_SMTP_USER
- EMAIL_SMTP_PASSWORD
- FROM_EMAIL
build:
dockerfile: ./backend/Dockerfile
context: .
command: celery worker -l INFO -Q celery
depends_on:
- backend
volumes:
- media:/baserow/media
networks:
local:
celery-export-worker:
container_name: celery-export-worker
image: baserow_backend:latest
build:
dockerfile: ./backend/Dockerfile
context: .
command: celery worker -l INFO -Q export
depends_on:
- backend
environment:
- ADDITIONAL_APPS
- EMAIL_SMTP
- EMAIL_SMTP_HOST
- EMAIL_SMTP_PORT
- EMAIL_SMPT_USE_TLS
- EMAIL_SMTP_USER
- EMAIL_SMTP_PASSWORD
- FROM_EMAIL
volumes:
- media:/baserow/media
networks:
local:
celery-beat-worker:
container_name: celery-beat-worker
image: baserow_backend:latest
build:
dockerfile: ./backend/Dockerfile
context: .
command: celery beat -l INFO -S redbeat.RedBeatScheduler
depends_on:
- backend
environment:
- ADDITIONAL_APPS
- EMAIL_SMTP
- EMAIL_SMTP_HOST
- EMAIL_SMTP_PORT
- EMAIL_SMTP_USE_TLS
- EMAIL_SMTP_USER
- EMAIL_SMTP_PASSWORD
- FROM_EMAIL
volumes:
- media:/baserow/media
networks:
local:
web-frontend:
container_name: web-frontend
build:
context: .
dockerfile: ./web-frontend/Dockerfile
image: baserow_web-frontend:latest
environment:
- PUBLIC_BACKEND_URL=${PUBLIC_BACKEND_URL:-http://localhost:8000}
- PUBLIC_WEB_FRONTEND_URL=${PUBLIC_BACKEND_URL:-http://localhost:3000}
- ADDITIONAL_MODULES
ports:
- "${HOST_PUBLISH_IP:-127.0.0.1}:${WEB_FRONTEND_PORT:-3000}:3000"
depends_on:
- backend
networks:
local:
# A nginx container purely to serve up django's MEDIA files.
media:
container_name: media
build: media
ports:
- "${HOST_PUBLISH_IP:-127.0.0.1}:${MEDIA_PORT:-4000}:80"
depends_on:
- media-volume-fixer
volumes:
- media:/baserow/media
networks:
local:
# When switching between dev and local the media files in the media volume will be
# owned by different users. Ensure that we chown them to the user appropriate for the
# environment here.
media-volume-fixer:
container_name: media-volume-fixer
image: bash:4.4
command: chown 9999:9999 -R /baserow/media
volumes:
- media:/baserow/media
networks:
local:
volumes:
pgdata:
media:
networks:
local:
driver: bridge