[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:
@@ -18,6 +18,7 @@ RUN apt-get update \
|
||||
git \
|
||||
imagemagick \
|
||||
libpq-dev \
|
||||
postgresql-client \
|
||||
&& curl -L https://deb.nodesource.com/setup_12.x | bash - \
|
||||
&& curl https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
|
||||
&& echo 'deb https://dl.yarnpkg.com/debian stable main' > /etc/apt/sources.list.d/yarn.list \
|
||||
@@ -46,12 +47,4 @@ COPY . /app
|
||||
# generate production assets if production environment
|
||||
RUN if [ "$RAILS_ENV" = "production" ]; then \
|
||||
SECRET_KEY_BASE=precompile_placeholder bundle exec rake assets:precompile; \
|
||||
fi
|
||||
|
||||
# Add a script to be executed every time the container starts.
|
||||
COPY ./docker/entrypoint.sh /usr/bin/
|
||||
RUN chmod +x /usr/bin/entrypoint.sh
|
||||
ENTRYPOINT ["entrypoint.sh"]
|
||||
|
||||
EXPOSE 3000
|
||||
CMD ["rails", "server", "-b", "0.0.0.0", "-p", "3000"]
|
||||
fi
|
||||
6
docker/dockerfiles/rails.Dockerfile
Normal file
6
docker/dockerfiles/rails.Dockerfile
Normal file
@@ -0,0 +1,6 @@
|
||||
FROM chatwoot:development
|
||||
|
||||
RUN chmod +x docker/entrypoints/rails.sh
|
||||
|
||||
EXPOSE 3000
|
||||
CMD ["rails", "server", "-b", "0.0.0.0", "-p", "3000"]
|
||||
6
docker/dockerfiles/webpack.Dockerfile
Normal file
6
docker/dockerfiles/webpack.Dockerfile
Normal file
@@ -0,0 +1,6 @@
|
||||
FROM chatwoot:development
|
||||
|
||||
RUN chmod +x docker/entrypoints/webpack.sh
|
||||
|
||||
EXPOSE 3035
|
||||
CMD ["bin/webpack-dev-server"]
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Remove a potentially pre-existing server.pid for Rails.
|
||||
rm -f /app/tmp/pids/server.pid
|
||||
|
||||
# Then exec the container's main process (what's set as CMD in the Dockerfile).
|
||||
exec "$@"
|
||||
29
docker/entrypoints/rails.sh
Executable file
29
docker/entrypoints/rails.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -x
|
||||
|
||||
# Remove a potentially pre-existing server.pid for Rails.
|
||||
rm -rf /app/tmp/pids/server.pid
|
||||
rm -rf /app/tmp/cache/*
|
||||
|
||||
echo "Waiting for postgres to become ready...."
|
||||
|
||||
PGPASSWORD=$POSTGRES_PASSWORD
|
||||
PSQL="pg_isready -h $POSTGRES_HOST -p 5432 -U $POSTGRES_USERNAME"
|
||||
until $PSQL
|
||||
do
|
||||
sleep 2;
|
||||
done
|
||||
|
||||
echo "Database ready to accept connections."
|
||||
|
||||
YARN="yarn check --integrity"
|
||||
BUNDLE="bundle check"
|
||||
|
||||
until $YARN && $BUNDLE
|
||||
do
|
||||
sleep 2;
|
||||
done
|
||||
|
||||
# Execute the main process of the container
|
||||
exec "$@"
|
||||
20
docker/entrypoints/webpack.sh
Executable file
20
docker/entrypoints/webpack.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
rm -rf /app/tmp/pids/server.pid
|
||||
rm -rf /app/tmp/cache/*
|
||||
|
||||
yarn install --check-files
|
||||
|
||||
echo "Waiting for yarn and bundle integrity to match lockfiles...."
|
||||
YARN="yarn check --integrity"
|
||||
BUNDLE="bundle check"
|
||||
|
||||
until $YARN && $BUNDLE
|
||||
do
|
||||
sleep 2;
|
||||
done
|
||||
|
||||
echo "Ready to run webpack development server."
|
||||
|
||||
exec "$@"
|
||||
Reference in New Issue
Block a user