diff --git a/docker-compose.yml b/docker-compose.yml index 75ed184..4bb6c02 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,7 +32,12 @@ services: # O passo do cron é "best-effort": se o crontab/cron não estiver disponível # (ex.: imagem antiga sem o pacote `cron`), apenas avisa no log e SEGUE — # nunca impede o Rails de subir. (Requer rebuild: docker compose up -d --build) - command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails db:prepare && { bundle exec whenever --update-crontab && cron || echo '[boot] AVISO cron/crontab indisponivel (rode com --build), seguindo sem agendamento'; } && bundle exec rails s -b 0.0.0.0" + # `bundle check || bundle install`: os gems ficam num VOLUME nomeado + # (bundle_cache) que persiste e SOMBREIA os gems da imagem — então adicionar + # uma gem nova ao Gemfile não chega no container só com `up`/`--build`. Este + # passo instala o que faltar no volume no boot (idempotente e rápido quando já + # está tudo instalado), evitando o Bundler::GemNotFound ao subir. + command: bash -c "rm -f tmp/pids/server.pid && (bundle check || bundle install) && bundle exec rails db:prepare && { bundle exec whenever --update-crontab && cron || echo '[boot] AVISO cron/crontab indisponivel (rode com --build), seguindo sem agendamento'; } && bundle exec rails s -b 0.0.0.0" # O banco PostgreSQL já existe externamente. # Configure DB_HOST no .env com o IP/hostname do seu servidor PostgreSQL.