production build

main
Sebskyo 2025-03-02 18:27:59 +01:00
parent da5286dc86
commit 8b2e0595f2
6 changed files with 48 additions and 7 deletions

View File

@ -16,7 +16,7 @@ WORKDIR /rails
# Install base packages # Install base packages
RUN apt-get update -qq && \ RUN apt-get update -qq && \
apt-get install --no-install-recommends -y curl libjemalloc2 libvips sqlite3 && \ apt-get install --no-install-recommends -y curl libjemalloc2 libvips sqlite3 libpq-dev && \
rm -rf /var/lib/apt/lists /var/cache/apt/archives rm -rf /var/lib/apt/lists /var/cache/apt/archives
# Set production environment # Set production environment
@ -45,9 +45,6 @@ COPY . .
# Precompile bootsnap code for faster boot times # Precompile bootsnap code for faster boot times
RUN bundle exec bootsnap precompile app/ lib/ RUN bundle exec bootsnap precompile app/ lib/
# Precompiling assets for production without requiring secret RAILS_MASTER_KEY
RUN SECRET_KEY_BASE_DUMMY=1 ./bin/rails assets:precompile

View File

@ -30,6 +30,8 @@ gem 'solid_cable'
gem 'solid_cache' gem 'solid_cache'
gem 'solid_queue' gem 'solid_queue'
gem 'pg'
# Reduces boot times through caching; required in config/boot.rb # Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', require: false gem 'bootsnap', require: false

View File

@ -240,6 +240,7 @@ GEM
parser (3.3.6.0) parser (3.3.6.0)
ast (~> 2.4.1) ast (~> 2.4.1)
racc racc
pg (1.5.9)
propshaft (1.1.0) propshaft (1.1.0)
actionpack (>= 7.0.0) actionpack (>= 7.0.0)
activesupport (>= 7.0.0) activesupport (>= 7.0.0)
@ -461,6 +462,7 @@ DEPENDENCIES
jbuilder jbuilder
kamal kamal
lookbook (~> 2.3) lookbook (~> 2.3)
pg
propshaft propshaft
puma (>= 5.0) puma (>= 5.0)
rails (~> 8.0.0) rails (~> 8.0.0)

View File

@ -1 +1 @@
rQktudMLk/4nS4BJHGKoD4lBqDG6MEtDu6OGfa2co0Xh8IJKZptHAj/NQYLJ5/KKFjT4neeHnik9PggP8wA0xHsd2CpYz0tZtkBVNqKMsup2SawPXGFyXvxIuWjz4cnrR+ld1eRXW//9fReowT4h39sNnmoCdjJ/V9dIHW7SpsEm+GZwG4nxKbC69OI6cB1tnZw9yLbQ7YaiyEn0F0jAX8Z12KDnBrWBvoE7FT2Q46mdPBLOq/Y01SmgRnf4gG10qnL6vekNi+uCwpK7uFR7yOs9l4GB0HgU/f+E+6FZQzLOKv9xZQHosykScU87NAJ8l2cMCUpaxyO2nea7+7NXbbl0zu51TcBbRTdLZris9yGH0TXwfpX7PchcL5PHUG6PWh/F2UI4aEV1cM5IK+YOQmPHrB99dFYyKTWfnnWD3jRQRsyOQKTndTPHO7rm+kilUiy0SCzgrY+Pm2qR/eozCJ7tx6j/soqgTePSCUdo+A39oNrsXW3mzmOb--Gxpp+BnADvqu/55D--KNdQDd1XXqlyBaf7l0UnPQ== PRcWjIOSDHFafgdZ5HQOiUQNOZpdKVqG62n3hbtmJ07hJzUdQ6vVOjRtw7j49J+4bHykHIMwqbwtYtreroD10bItlKmQ11Nd+h3cauM+DJxsa8DdWeV8zDx94jImPRPtofu3C9Oj6ogHCJrcxWg3L9rWNaOyYCsLN1uECMOQhpIxNVjF0bcGERZhTAWbLIr2jewkJK0TWu8DyZCSn9esA4MZFEP8rVae5ApZlFHcDKkXVHG/JuF+MuP7OO6rFPdgigRO0nzIXH6yXNwNATH9Yi8x0dREjK0mk6h/aYHWnNp0RT8Qnbcpt30lauFLv3W48qkQ621UU7fuFS6LZukr30NLrNUEXVZMid3iGGvLUZk2P3bS1dl0rg9X11f/3FJ58dXAZnJkMogqR3NlfjqArZD74UC0AURGFUuAwNJCfw6vCAbAMHW9iNGE0IiRT0PcrQsNApqlTZQie0SM+89TWr4CV2EEqXdgc8v7SG6X4mks58AEDWaYRSeH--h6b3cNVTSphSsWVJ--5cXbFf2DabGLMkRA0K2GcQ==

View File

@ -25,8 +25,13 @@ test:
# is mounted as a persistent Docker volume in config/deploy.yml. # is mounted as a persistent Docker volume in config/deploy.yml.
production: production:
primary: primary:
<<: *default adapter: postgresql
database: storage/production.sqlite3 encoding: unicode
host: <%= ENV['DATABASE_HOST'] %>
database: <%= ENV['DATABASE_NAME'] %>
username: <%= ENV['DATABASE_USER'] %>
password: <%= ENV['DATABASE_PASS'] %>
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
cache: cache:
<<: *default <<: *default
database: storage/production_cache.sqlite3 database: storage/production_cache.sqlite3

35
docker-compose.yml Normal file
View File

@ -0,0 +1,35 @@
version: '2'
services:
rails:
build:
context: ./
environment:
DATABASE_HOST: postgres
DATABASE_NAME: chatbot_prod
DATABASE_USER: postgres
DATABASE_PASS: postgres
RAILS_MASTER_KEY: 8a8e7fc319733cd969f23450cbdfadaf
SOLID_QUEUE_IN_PUMA: true
depends_on:
- postgres
ports:
- "3000:3000"
networks:
- chatbot-network
postgres:
image: postgres:16.8-alpine3.20
environment:
POSTGRES_DB: chatbot_prod
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- postgres-data:/var/lib/postgresql/data
networks:
- chatbot-network
volumes:
postgres-data:
networks:
chatbot-network: