зеркало из
https://github.com/rs-pro/activeadmin-quill_editor.git
synced 2026-08-28 15:36:17 +03:00
chore: Update Docker dev setup
Этот коммит содержится в:
1
.rspec
1
.rspec
@@ -1 +1,2 @@
|
||||
--require rails_helper
|
||||
--format documentation
|
||||
|
||||
20
Gemfile
20
Gemfile
@@ -2,19 +2,31 @@
|
||||
|
||||
source 'https://rubygems.org'
|
||||
|
||||
if ENV["DEVEL"] == "1"
|
||||
gem 'rails', '~> 7.1.0'
|
||||
if ENV['DEVEL'] == '1'
|
||||
# for Docker dev
|
||||
rails_ver = ENV.fetch('RAILS_VERSION')
|
||||
gem 'rails', rails_ver
|
||||
|
||||
gem 'activeadmin', '~> 3.3'
|
||||
gem 'activeadmin', ENV.fetch('ACTIVEADMIN_VERSION')
|
||||
gem 'activeadmin_quill_editor', path: './'
|
||||
|
||||
if rails_ver.start_with?('7.0')
|
||||
gem 'concurrent-ruby', '1.3.4'
|
||||
gem 'sqlite3', '~> 1.4'
|
||||
else
|
||||
gem 'sqlite3'
|
||||
end
|
||||
else
|
||||
gemspec
|
||||
|
||||
gem 'sqlite3'
|
||||
end
|
||||
|
||||
gem 'bigdecimal'
|
||||
gem 'mutex_m'
|
||||
gem 'puma'
|
||||
gem 'sassc'
|
||||
gem 'sprockets-rails'
|
||||
gem 'sqlite3'
|
||||
|
||||
# Testing
|
||||
gem 'capybara'
|
||||
|
||||
40
README.md
40
README.md
@@ -105,22 +105,50 @@ the editor will not destroy them, you'll need to implement a purge logic for tha
|
||||
|
||||
Project created by [Mattia Roccoberton](http://blocknot.es), thanks also to the good guys that opened issues and pull requests from time to time.
|
||||
|
||||
A Docker dev setup is provided if you like to work with it:
|
||||
There 3 ways to interact with this project:
|
||||
|
||||
1) Using Docker:
|
||||
|
||||
```sh
|
||||
# Run rails server on the dummy app (=> http://localhost:3000 to access to ActiveAdmin):
|
||||
make up
|
||||
# Enter in a console of the dummy app after it has been started:
|
||||
# Enter in a Rails console (with the dummy app started):
|
||||
make console
|
||||
# Enter in a shell of the dummy app after it has been started:
|
||||
# Enter in a shell (with the dummy app started):
|
||||
make shell
|
||||
# Run the linter on the project:
|
||||
# Run the linter on the project (with the dummy app started):
|
||||
make lint
|
||||
# Remove container and image after stopping the app:
|
||||
# Run the test suite (with the dummy app started):
|
||||
make specs
|
||||
# Remove container and image:
|
||||
make cleanup
|
||||
# To try different versions of Ruby/Rails/ActiveAdmin edit docker-compose.yml
|
||||
# For more commands please check the Makefile
|
||||
```
|
||||
|
||||
For more commands please check the [Makefile](Makefile).
|
||||
2) Using Appraisal:
|
||||
|
||||
```sh
|
||||
export RAILS_ENV=development
|
||||
# Install dependencies
|
||||
bin/appraisal
|
||||
# Run server (or any command)
|
||||
bin/appraisal rails s
|
||||
# Or with specific versions
|
||||
bin/appraisal rails71-activeadmin rails s
|
||||
```
|
||||
|
||||
3) With a local setup:
|
||||
|
||||
```sh
|
||||
# Dev setup (set the required envs)
|
||||
source extra/dev_setup.sh
|
||||
# Install dependencies
|
||||
bundle
|
||||
# Run server (or any command)
|
||||
bin/rails s
|
||||
# To try different versions of Rails/ActiveAdmin edit extra/dev_setup.sh
|
||||
```
|
||||
|
||||
## Do you like it? Star it!
|
||||
|
||||
|
||||
@@ -4,9 +4,14 @@ services:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./extra/Dockerfile
|
||||
# dockerfile: ./extra/Dockerfile_alpine
|
||||
args:
|
||||
RUBY_VERSION: 3.3.6
|
||||
# Debian-based Ruby image:
|
||||
RUBY_IMAGE: ruby:3.4-slim
|
||||
UID: ${UID}
|
||||
environment:
|
||||
ACTIVEADMIN_VERSION: ~> 3.3
|
||||
RAILS_VERSION: ~> 8.0
|
||||
user: "${UID}:${GID}"
|
||||
ports:
|
||||
- '3000:3000'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
ARG RUBY_VERSION=3
|
||||
FROM ruby:${RUBY_VERSION}
|
||||
ARG RUBY_IMAGE=ruby:3
|
||||
FROM ${RUBY_IMAGE}
|
||||
|
||||
ARG UID
|
||||
|
||||
@@ -8,19 +8,14 @@ ENV LANG=C.UTF-8
|
||||
ENV RAILS_ENV=development
|
||||
|
||||
RUN apt-get update -qq
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -yqq --no-install-recommends build-essential chromium libyaml-dev
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -yqq --no-install-recommends build-essential chromium libyaml-dev nano
|
||||
|
||||
RUN gem install bundler
|
||||
RUN echo 'gem: --no-document' > /etc/gemrc
|
||||
|
||||
COPY . /app
|
||||
|
||||
RUN mkdir -p /home/app
|
||||
RUN useradd -u ${UID} --shell /bin/bash app
|
||||
RUN mkdir -p /home/app && chown -R app:app /home/app
|
||||
RUN chown -R app /usr/local/bundle
|
||||
RUN chown -R app:app /home/app && chown -R app:app /app
|
||||
|
||||
USER ${UID}
|
||||
|
||||
WORKDIR /app
|
||||
RUN bundle update
|
||||
COPY . /app
|
||||
|
||||
18
extra/Dockerfile_alpine
Обычный файл
18
extra/Dockerfile_alpine
Обычный файл
@@ -0,0 +1,18 @@
|
||||
FROM ruby:3.3-alpine
|
||||
|
||||
ARG UID
|
||||
|
||||
ENV DEVEL=1
|
||||
ENV LANG=C.UTF-8
|
||||
ENV RAILS_ENV=development
|
||||
|
||||
RUN apk update && apk add --no-cache build-base chromium tzdata yaml-dev
|
||||
|
||||
RUN gem install bundler
|
||||
RUN echo 'gem: --no-document' > /etc/gemrc
|
||||
|
||||
RUN adduser -u ${UID} -D app
|
||||
RUN mkdir -p /home/app && chown -R app:app /home/app
|
||||
RUN chown -R app /usr/local/bundle
|
||||
|
||||
COPY . /app
|
||||
8
extra/dev_setup.sh
Исполняемый файл
8
extra/dev_setup.sh
Исполняемый файл
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
export DEVEL=1
|
||||
|
||||
export RAILS_VERSION=7.2.2.1
|
||||
export ACTIVEADMIN_VERSION=3.3.0
|
||||
|
||||
export RAILS_ENV=development
|
||||
@@ -1,2 +1,8 @@
|
||||
echo "> Install dependencies"
|
||||
rm -f Gemfile.lock && bundle install
|
||||
|
||||
echo "> Run pending migrations"
|
||||
cd spec/dummy && bundle exec rails db:migrate
|
||||
cd - && rm -f spec/dummy/tmp/pids/server.pid && bundle exec rails s -b 0.0.0.0
|
||||
|
||||
echo "> Start Rails server"
|
||||
cd /app && rm -f spec/dummy/tmp/pids/server.pid && bundle exec rails s -b 0.0.0.0
|
||||
|
||||
@@ -59,4 +59,8 @@ Rails.application.configure do
|
||||
# Use an evented file watcher to asynchronously detect changes in source code,
|
||||
# routes, locales, etc. This feature depends on the listen gem.
|
||||
# config.file_watcher = ActiveSupport::EventedFileUpdateChecker
|
||||
|
||||
###
|
||||
|
||||
config.active_support.to_time_preserves_timezone = :zone if Gem::Version.new(Rails.version) >= Gem::Version.new('8.0')
|
||||
end
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
Rails.application.configure do
|
||||
# Settings specified here will take precedence over those in config/application.rb.
|
||||
|
||||
# Code is not reloaded between requests.
|
||||
config.cache_classes = true
|
||||
|
||||
# Eager load code on boot. This eager loads most of Rails and
|
||||
# your application in memory, allowing both threaded web servers
|
||||
# and those relying on copy on write to perform better.
|
||||
# Rake tasks automatically ignore this option for performance.
|
||||
config.eager_load = true
|
||||
|
||||
# Full error reports are disabled and caching is turned on.
|
||||
config.consider_all_requests_local = false
|
||||
config.action_controller.perform_caching = true
|
||||
|
||||
# Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
|
||||
# or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
|
||||
# config.require_master_key = true
|
||||
|
||||
# Disable serving static files from the `/public` folder by default since
|
||||
# Apache or NGINX already handles this.
|
||||
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
|
||||
|
||||
# Compress CSS using a preprocessor.
|
||||
# config.assets.css_compressor = :sass
|
||||
|
||||
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
||||
config.assets.compile = false
|
||||
|
||||
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
||||
# config.action_controller.asset_host = 'http://assets.example.com'
|
||||
|
||||
# Specifies the header that your server uses for sending files.
|
||||
# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
|
||||
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
|
||||
|
||||
# Store uploaded files on the local file system (see config/storage.yml for options).
|
||||
config.active_storage.service = :local
|
||||
|
||||
# Mount Action Cable outside main process or domain.
|
||||
# config.action_cable.mount_path = nil
|
||||
# config.action_cable.url = 'wss://example.com/cable'
|
||||
# config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
|
||||
|
||||
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
||||
# config.force_ssl = true
|
||||
|
||||
# Use the lowest log level to ensure availability of diagnostic information
|
||||
# when problems arise.
|
||||
config.log_level = :debug
|
||||
|
||||
# Prepend all log lines with the following tags.
|
||||
config.log_tags = [ :request_id ]
|
||||
|
||||
# Use a different cache store in production.
|
||||
# config.cache_store = :mem_cache_store
|
||||
|
||||
# Use a real queuing backend for Active Job (and separate queues per environment).
|
||||
# config.active_job.queue_adapter = :resque
|
||||
# config.active_job.queue_name_prefix = "dummy_production"
|
||||
|
||||
# config.action_mailer.perform_caching = false
|
||||
|
||||
# Ignore bad email addresses and do not raise email delivery errors.
|
||||
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
|
||||
# config.action_mailer.raise_delivery_errors = false
|
||||
|
||||
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
||||
# the I18n.default_locale when a translation cannot be found).
|
||||
config.i18n.fallbacks = true
|
||||
|
||||
# Send deprecation notices to registered listeners.
|
||||
config.active_support.deprecation = :notify
|
||||
|
||||
# Use default logging formatter so that PID and timestamp are not suppressed.
|
||||
config.log_formatter = ::Logger::Formatter.new
|
||||
|
||||
# Use a different logger for distributed setups.
|
||||
# require 'syslog/logger'
|
||||
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
|
||||
|
||||
if ENV["RAILS_LOG_TO_STDOUT"].present?
|
||||
logger = ActiveSupport::Logger.new(STDOUT)
|
||||
logger.formatter = config.log_formatter
|
||||
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
||||
end
|
||||
|
||||
# Do not dump schema after migrations.
|
||||
config.active_record.dump_schema_after_migration = false
|
||||
|
||||
# Inserts middleware to perform automatic connection switching.
|
||||
# The `database_selector` hash is used to pass options to the DatabaseSelector
|
||||
# middleware. The `delay` is used to determine how long to wait after a write
|
||||
# to send a subsequent read to the primary.
|
||||
#
|
||||
# The `database_resolver` class is used by the middleware to determine which
|
||||
# database is appropriate to use based on the time delay.
|
||||
#
|
||||
# The `database_resolver_context` class is used by the middleware to set
|
||||
# timestamps for the last write to the primary. The resolver uses the context
|
||||
# class timestamps to determine how long to wait before reading from the
|
||||
# replica.
|
||||
#
|
||||
# By default Rails will store a last write timestamp in the session. The
|
||||
# DatabaseSelector middleware is designed as such you can define your own
|
||||
# strategy for connection switching and pass that into the middleware through
|
||||
# these configuration options.
|
||||
# config.active_record.database_selector = { delay: 2.seconds }
|
||||
# config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver
|
||||
# config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session
|
||||
end
|
||||
@@ -46,4 +46,8 @@ Rails.application.configure do
|
||||
|
||||
# Raises error for missing translations.
|
||||
# config.action_view.raise_on_missing_translations = true
|
||||
|
||||
###
|
||||
|
||||
config.active_support.to_time_preserves_timezone = :zone if Gem::Version.new(Rails.version) >= Gem::Version.new('8.0')
|
||||
end
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema[7.1].define(version: 2018_06_07_053739) do
|
||||
ActiveRecord::Schema[8.0].define(version: 2018_06_07_053739) do
|
||||
create_table "active_admin_comments", force: :cascade do |t|
|
||||
t.string "namespace"
|
||||
t.text "body"
|
||||
|
||||
Ссылка в новой задаче
Block a user