docker-compose.yml
version: "3.0"
services:
rails:
build:
context: ./docker/ruby
args:
- RUBY_VERSION=3.0.5
- NODE_VERSION=18
- INSTALL_PG_CLIENT=true
- UID=${UID:-1000}
- GID=${GID:-1000}
volumes:
- .:/workspaces/scheduler
- gems:/gems
- node_modules:/workspaces/scheduler/node_modules
- packs:/workspaces/scheduler/public/packs
- rails_cache:/workspaces/scheduler/tmp/cache
tmpfs:
- /tmp
user: ruby
tty: true
stdin_open: true
depends_on:
- postgres
- redis
command: bundle exec rails server -p 3000 -b '0.0.0.0'
ports:
- "3000:3000"
- "1080:1080"
- "43447:43447"
entrypoint: /workspaces/scheduler/docker/rails-entrypoint
environment:
- WEB_CONCURRENCY=1
- WEBPACKER_DEV_SERVER_HOST=webpacker
- SEED_ADMIN_EMAIL=${SEED_ADMIN_EMAIL}
- SEED_ADMIN_PASSWORD=${SEED_ADMIN_PASSWORD}
- SELENIUM_REMOTE_HOST=selenium
- BOOTSNAP_CACHE_DIR=/gems/bootsnap
webpacker:
build:
context: ./docker/ruby
args:
- RUBY_VERSION=3.0.5
- NODE_VERSION=18
- INSTALL_PG_CLIENT=true
- UID=${UID:-1000}
- GID=${GID:-1000}
volumes:
- .:/workspaces/scheduler
- gems:/gems
- node_modules:/workspaces/scheduler/node_modules
- packs:/workspaces/scheduler/public/packs
- rails_cache:/workspaces/scheduler/tmp/cache
tmpfs:
- /tmp
user: ruby
tty: true
stdin_open: true
depends_on:
- postgres
- redis
command: ./bin/webpack-dev-server
ports:
- "3035:3035"
entrypoint: /workspaces/scheduler/docker/webpack-entrypoint
sidekiq:
build:
context: ./docker/ruby
args:
- RUBY_VERSION=3.0.5
- NODE_VERSION=18
- INSTALL_PG_CLIENT=true
- UID=${UID:-1000}
- GID=${GID:-1000}
volumes:
- .:/workspaces/scheduler
- gems:/gems
- node_modules:/workspaces/scheduler/node_modules
- packs:/workspaces/scheduler/public/packs
- rails_cache:/workspaces/scheduler/tmp/cache
tmpfs:
- /tmp
user: ruby
tty: true
stdin_open: true
depends_on:
- postgres
- redis
command: bundle exec sidekiq
entrypoint: /workspaces/scheduler/docker/sidekiq-entrypoint
environment:
- BOOTSNAP_CACHE_DIR=/gems/bootsnap
selenium:
image: selenium/standalone-chrome
postgres:
image: postgres:15.2
volumes:
- postgres-data:/var/lib/postgresql/data
environment:
- POSTGRES_HOST_AUTH_METHOD=trust
redis:
build:
context: ./docker/redis
args:
- REDIS_VERSION=5.0
volumes:
- redis:/data
volumes:
postgres-data:
gems:
redis:
node_modules:
packs:
rails_cache: