[Enhancement] Docker support Debugging (byebug & pry) and receive emails to MailHog via smtp (#371)

* updated development docker setup

* turned on yarn integrity check

* create test docker compose and update development dockerfile

* create docker Readme.md file

* fix README.md file

* create docker-copmose and dockerfile for production/staging environment setup

* added mailhog to catch email

* remove yarn integrity check in development mode!

* Update Readme.md file to support mailhog inbox

* update link to docker development guide from mail README

* remove .env.development and use .env.example for docker as .env.development was mixing with circleci config

* make the dockerfile configurable like before

* update docker-compose as per suggesion in PR

* create docker setup docs

* Revert accidental deletion

* fix: typo for branding consistency

* fix typo

* update the code as per recommendation in PR

* remove package-lock and add gitignore

* fix vulnerability AND update env for tests to pass

* Fix yarn integrity check across different docker services

* update code based on rubocop and PR suggestions

* remove redundant test docker-compose and dockerfile

* update rails entrypoint, update docs and Gemfile

* [Rubocop] order Gemfile alphabetically

* Reordering Gemfile
This commit is contained in:
Anto Dominic
2019-12-22 22:53:18 +05:30
committed by Sojan Jose
parent 6bdac3d9fe
commit 1ee17cc826
18 changed files with 363 additions and 141 deletions

View File

@@ -1,15 +1,7 @@
version: '3'
volumes:
postgres:
redis:
bundle:
packs:
node_modules:
services:
server: &server
base: &base
build:
context: .
dockerfile: ./docker/Dockerfile
@@ -17,39 +9,57 @@ services:
BUNDLE_WITHOUT: ''
RAILS_ENV: 'development'
RAILS_SERVE_STATIC_FILES: 'false'
tty: true
stdin_open: true
image: chatwoot:development
rails:
<<: *base
build:
context: .
dockerfile: ./docker/dockerfiles/rails.Dockerfile
image: chatwoot-rails:development
volumes:
- ./:/app:cached
- bundle:/bundle:delegated
- packs:/app/public/packs
- ./:/app:delegated
- node_modules:/app/node_modules
links:
- packs:/app/public/packs
- cache:/app/tmp/cache
depends_on:
- postgres
- redis
- webpack
- mailhog
ports:
- '3000:3000'
- 3000:3000
env_file: .env.example
environment:
- REDIS_URL=redis://redis:6379
- POSTGRES_HOST=postgres
- WEBPACKER_DEV_SERVER_HOST=webpack
- NODE_ENV=development
- RAILS_ENV=development
- WEBPACKER_DEV_SERVER_HOST=webpacker
entrypoint: docker/entrypoints/rails.sh
command: ["bundle", "exec", "rails", "s", "-p", "3000", "-b", "0.0.0.0"]
webpacker:
<<: *server
command: ./bin/webpack-dev-server
depends_on:
- "server"
ports:
- '3035:3035'
webpack:
<<: *base
build:
context: .
dockerfile: ./docker/dockerfiles/webpack.Dockerfile
image: chatwoot-webpack:development
volumes:
- .:/app:cached
- bundle:/bundle
- node_modules:/app/node_modules
- ./:/app:delegated
- node_modules:/app/node_modules # Node modules shared across containers
- packs:/app/public/packs
- cache:/app/tmp/cache
ports:
- "3035" # Webpack dev server
env_file: .env.example
environment:
- "NODE_ENV=development"
- "RAILS_ENV=development"
- "WEBPACKER_DEV_SERVER_HOST=0.0.0.0"
- WEBPACKER_DEV_SERVER_HOST=0.0.0.0
- NODE_ENV=development
- RAILS_ENV=development
entrypoint: docker/entrypoints/webpack.sh
command: bin/webpack-dev-server
postgres:
image: postgres:9.6
restart: always
@@ -69,3 +79,16 @@ services:
- redis:/data/redis
ports:
- '6379:6379'
mailhog:
image: mailhog/mailhog
ports:
- 1025:1025
- 8025:8025
volumes:
postgres:
redis:
packs:
node_modules:
cache: