From bbaf6ef784238417d61329010377ed42fa3fc13f Mon Sep 17 00:00:00 2001 From: Chris Zhu Date: Tue, 18 Feb 2025 13:17:35 -0800 Subject: [PATCH] added dockerfile for local run --- Dockerfile | 3 ++- bin/docker-entrypoint | 4 ++-- bin/run | 13 +++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100755 bin/run diff --git a/Dockerfile b/Dockerfile index c9ca3eeb..9172f9e4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,6 +36,7 @@ RUN bundle install && \ rm -rf ~/.bundle/ "${BUNDLE_PATH}"/ruby/*/cache "${BUNDLE_PATH}"/ruby/*/bundler/gems/*/.git && \ bundle exec bootsnap precompile --gemfile +RUN gem install foreman # Install javascript dependencies ARG NODE_VERSION=20.11.0 ARG YARN_VERSION=1.22.21 @@ -76,4 +77,4 @@ USER 1000:1000 ENTRYPOINT ["/rails/bin/docker-entrypoint"] EXPOSE 3000 -CMD ["./bin/rails", "server"] +CMD ["./bin/run"] diff --git a/bin/docker-entrypoint b/bin/docker-entrypoint index 4d93f189..2e0d5e11 100755 --- a/bin/docker-entrypoint +++ b/bin/docker-entrypoint @@ -6,9 +6,9 @@ if [ -z "${LD_PRELOAD+x}" ] && [ -f /usr/lib/*/libjemalloc.so.2 ]; then export LD_PRELOAD="$(echo /usr/lib/*/libjemalloc.so.2)" fi -# If running the rails server or bin/dev then create or migrate existing database +# If running the rails server, bin/dev, or bin/run then create or migrate existing database echo "Checking if database needs to be prepared..." -if [ "${1}" == "./bin/rails" ] && [ "${2}" == "server" ] || [ "${1}" == "./bin/dev" ]; then +if [ "${1}" == "./bin/rails" ] && [ "${2}" == "server" ] || [ "${1}" == "./bin/dev" ] || [ "${1}" == "./bin/run" ]; then echo "Preparing database..." ./bin/rails db:create ./bin/rails db:prepare diff --git a/bin/run b/bin/run new file mode 100755 index 00000000..399251de --- /dev/null +++ b/bin/run @@ -0,0 +1,13 @@ +#!/usr/bin/env sh + +if ! gem list foreman -i --silent; then + echo "Installing foreman..." + gem install foreman +fi + +# Let the debug gem allow remote connections, +# but avoid loading until `debugger` is called +export RUBY_DEBUG_OPEN="true" +export RUBY_DEBUG_LAZY="true" + +exec foreman start -f Procfile "$@"