chatwoot-develop/docker-compose.yaml

133 lines
3.0 KiB
YAML
Executable File

version: '3'
services:
base: &base
build:
context: .
dockerfile: ./docker/Dockerfile
args:
BUNDLE_WITHOUT: ''
EXECJS_RUNTIME: 'Node'
RAILS_ENV: 'development'
RAILS_SERVE_STATIC_FILES: 'false'
tty: true
stdin_open: true
image: chatwoot:development
env_file: .env
rails:
<<: *base
dns:
- 8.8.8.8
- 1.1.1.1
build:
context: .
dockerfile: ./docker/dockerfiles/rails.Dockerfile
image: chatwoot-rails:development
volumes:
- ./:/app:delegated
- node_modules:/app/node_modules
- packs:/app/public/packs
- cache:/app/tmp/cache
- bundle:/usr/local/bundle
depends_on:
- postgres
- redis
- vite
- mailhog
- sidekiq
ports:
- 3000:3000
env_file: .env
environment:
- VITE_DEV_SERVER_HOST=vite
- NODE_ENV=development
- RAILS_ENV=development
- POSTGRES_PORT=5432 # Force internal port
- POSTGRES_HOST=postgres
- REDIS_URL=redis://redis:6379
entrypoint: docker/entrypoints/rails.sh
command: [ "bundle", "exec", "rails", "s", "-p", "3000", "-b", "0.0.0.0" ]
sidekiq:
<<: *base
dns:
- 8.8.8.8
- 1.1.1.1
volumes:
- ./:/app:delegated
- node_modules:/app/node_modules
- packs:/app/public/packs
- cache:/app/tmp/cache
- bundle:/usr/local/bundle
depends_on:
- postgres
- redis
- mailhog
environment:
- NODE_ENV=development
- RAILS_ENV=development
- POSTGRES_PORT=5432 # Force internal port
command: [ "bundle", "exec", "sidekiq", "-C", "config/sidekiq.yml" ]
vite:
<<: *base
build:
context: .
dockerfile: ./docker/dockerfiles/vite.Dockerfile
image: chatwoot-vite:development
volumes:
- ./:/app:delegated
- node_modules:/app/node_modules
- packs:/app/public/packs
- cache:/app/tmp/cache
- bundle:/usr/local/bundle
ports:
- "3036:3036" # Vite dev server
environment:
- VITE_DEV_SERVER_HOST=0.0.0.0
- NODE_ENV=development
- NODE_ENV=development
- RAILS_ENV=development
- DATABASE_URL= # Prevent override by .env
- POSTGRES_PORT=5432 # Force internal port
entrypoint: docker/entrypoints/vite.sh
command: sh -c "gem install bundler:2.5.11 && bin/vite dev"
postgres:
image: pgvector/pgvector:pg16
restart: always
ports:
- '5438:5432'
volumes:
- postgres:/var/lib/postgresql/data
environment:
- POSTGRES_DB=chatwoot
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=
- POSTGRES_HOST_AUTH_METHOD=trust
redis:
image: redis:alpine
restart: always
command: [ "sh", "-c", "redis-server --requirepass \"$REDIS_PASSWORD\"" ]
env_file: .env
volumes:
- redis:/data/redis
ports:
- '6379:6379'
mailhog:
image: mailhog/mailhog
ports:
- 1025:1025
- 8025:8025
volumes:
postgres:
redis:
packs:
node_modules:
cache:
bundle: