aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorent Peyraud2017-12-17 15:39:07 +0100
committerAlban Peignier2018-01-07 23:22:19 +0100
commit1d100b42b9a47c73dc7723775407308b19b14f54 (patch)
tree7eb09568813282cc014d8255efb5edba628b41ae
parentfa63d6e3d51ccc0b3a38616747fcd91b5fdfbba5 (diff)
downloadchouette-core-1d100b42b9a47c73dc7723775407308b19b14f54.tar.bz2
docker first commit
-rw-r--r--config/database.yml.docker11
-rw-r--r--config/environments/production.rb67
-rw-r--r--config/initializers/sidekiq.rb5
-rw-r--r--lib/tasks/install.rake20
4 files changed, 65 insertions, 38 deletions
diff --git a/config/database.yml.docker b/config/database.yml.docker
new file mode 100644
index 000000000..f49b22b87
--- /dev/null
+++ b/config/database.yml.docker
@@ -0,0 +1,11 @@
+<%= ENV.fetch 'RAILS_ENV', 'production' %>:
+ adapter: <%= ENV.fetch 'RAILS_DB_ADAPTER', 'postgis' %>
+ encoding: unicode
+ pool: <%= ENV.fetch 'RAILS_DB_POOLSIZE', '5' %>
+ host: <%= ENV.fetch 'RAILS_DB_HOST', 'db' %>
+ port: <%= ENV.fetch 'RAILS_DB_PORT', '5432' %>
+ schema_search_path: 'public,shared_extensions'
+ postgis_schema: 'shared_extensions'
+ database: <%= ENV.fetch 'RAILS_DB_NAME', 'chouette' %>
+ username: <%= ENV.fetch 'RAILS_DB_USER', 'chouette' %>
+ password: <%= ENV.fetch 'RAILS_DB_PASSWORD' %>
diff --git a/config/environments/production.rb b/config/environments/production.rb
index 8e21f0919..64eeaa854 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -19,7 +19,8 @@ Rails.application.configure do
# config.action_dispatch.rack_cache = true
# Disable Rails's static asset server (Apache or nginx will already do this).
- config.serve_static_files = false
+ # config.serve_static_files = false
+ config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
@@ -53,9 +54,10 @@ Rails.application.configure do
#if ENV['OS'] == 'Windows_NT'
# # args = log_path,number of files,file sizes
# config.logger = Logger.new("C:/chouette/logs/chouette2.log", 5, 10.megabytes)
- config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new("rails/chouette2").tap do |syslog|
- syslog.level = Logger::INFO
- end)
+ config.logger = Logger.new(STDOUT)
+ #config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new("rails/chouette2").tap do |syslog|
+ # syslog.level = Logger::INFO
+ # end)
# Use a different cache store in production.
# config.cache_store = :mem_cache_store
@@ -84,42 +86,31 @@ Rails.application.configure do
config.active_record.dump_schema_after_migration = false
- config.action_mailer.default_url_options = { :host => 'my-domain-name.com' }
+ config.action_mailer.default_url_options = { :host => ENV.fetch('MAIL_HOST','iboo.stif.info') }
# Configure the e-mail address which will be shown in Devise::Maile
- config.mailer_sender = "chouette-production@my-domain-name.com"
-
- ActionMailer::Base.smtp_settings = {
- :address => "smtp.sample.com",
- :port => 25,
- :domain => "sample.com",
- :user_name => "smtp_user",
- :password => "smtp_password",
- :authentication => :login
- }
+ config.mailer_sender = ENV.fetch('MAIL_FROM', 'STIF Iboo <noreply@stif.info>')
+ config.action_mailer.default_options = { from: ENV.fetch('MAIL_FROM', 'STIF Iboo <noreply@stif.info>') }
+ config.action_mailer.smtp_settings = { address: ENV.fetch('SMTP_HOST', 'mail.stif.info') }
+ config.action_mailer.asset_host = ENV.fetch('MAIL_ASSETS_URL_BASE','http://iboo.stif.info')
# Specific theme for each company
# AFIMB
- config.company_name = "afimb"
- config.company_theme = "#61970b" # AFIMB color
- config.company_contact = "http://www.chouette.mobi/club-utilisateurs/contact-support/"
- config.accept_user_creation = true
-
- # CITYWAY
- # config.company_name = "cityway"
- # config.company_theme = "#32adb0"
- # config.company_contact = "http://www.cityway.fr/contact/?rub_code=14"
- # config.accept_user_creation = false
-
- config.chouette_authentication_settings = {
- type: "cas",
- cas_server: "https://portail-server/sessions",
- cas_validate_url: "http://portail-server/sessions/proxyValidate"
- }
- config.stif_portail_api = {
- key: "api_token_for_portail_goes_here",
- url: "http://portail-server"
- }
+ config.company_name = ENV.fetch('COMPANY_NAME',"STIF")
+ config.company_theme = ENV.fetch('COMPANY_THEME',"#61970b") # AFIMB color
+ config.company_contact = ENV.fetch('COMPANY_CONTACT',"http://www.chouette.mobi/club-utilisateurs/contact-support/")
+ config.accept_user_creation = ENV.fetch('ACCEPT_USER_CREATION','0')=='1'?true:false
+
+ config.chouette_authentication_settings = JSON.parse(ENV.fetch('AUTH_SETTINGS','{
+ "type": "cas",
+ "cas_server": "https://portail.stif.info/sessions",
+ "cas_validate_url": "http://portail.stif.info/sessions/proxyValidate"
+ }',{symbolize_names: true}))
+
+ config.stif_portail_api = JSON.parse(ENV.fetch('SESAME_API_SETTINGS','{
+ "key": "xxxxxxxxxxx",
+ "url": "http://portail.stif.info"
+ }',{symbolize_names: true}))
# file to data for demo
# config.demo_data = "/path/to/demo.zip"
@@ -135,12 +126,12 @@ Rails.application.configure do
config.i18n.available_locales = [:fr, :en]
# REFLEX api url
- config.reflex_api_url = "https://pprod.reflex.stif.info/ws/reflex/V1/service=getData"
+ config.reflex_api_url = ENV.fetch('REFLEX_API_URL',"https://pprod.reflex.stif.info/ws/reflex/V1/service=getData")
# CODIFLIGNE api url
- config.codifligne_api_url = "https://pprod.codifligne.stif.info/rest/v1/lc/getlist"
+ config.codifligne_api_url = ENV.fetch('CODIFLIGNE_API_URL',"https://pprod.codifligne.stif.info/rest/v1/lc/getlist")
# IEV
- config.iev_url = "http://worker-server:8080"
+ config.iev_url = ENV.fetch('IEV_URL',"http://iev:8080")
config.rails_host = ENV.fetch('RAILS_HOST')
# Set node env for browserify-rails
diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb
index e44d8df52..bc60dbe20 100644
--- a/config/initializers/sidekiq.rb
+++ b/config/initializers/sidekiq.rb
@@ -7,4 +7,9 @@ Sidekiq.configure_server do |config|
pendings.map { |sync| sync.failed({error: 'Failed by Sidekiq reboot', processing_time: 0}) }
end
end
+ config.redis = { url: ENV.fetch('SIDEKIQ_REDIS_URL', 'redis://redis:6379/12') }
+end
+
+Sidekiq.configure_client do |config|
+ config.redis = { url: ENV.fetch('SIDEKIQ_REDIS_URL', 'redis://redis:6379/12') }
end
diff --git a/lib/tasks/install.rake b/lib/tasks/install.rake
index ccc6f2450..c5cfd3cde 100644
--- a/lib/tasks/install.rake
+++ b/lib/tasks/install.rake
@@ -21,3 +21,23 @@ task :package do
sh "tar -czf stif-boiv-#{release_name}.tar.gz -C tmp/package ."
sh "rm -rf tmp/package vendor/cache"
end
+
+desc "generate all-in-1 tar.gz package for docker"
+task :pkg4docker do
+ release_name = Time.now.strftime('%Y%m%d%H%M%S')
+
+ rm_rf "tmp/package"
+ mkdir_p "tmp/package"
+
+ sh "git archive --format=tar --output=tmp/package/stif-boiv-release-#{release_name}.tar HEAD"
+
+ sh "bundle package --all"
+ sh "RAILS_DB_ADAPTER=nulldb bundle exec rake assets:clobber RAILS_ENV=production"
+ sh "RAILS_DB_ADAPTER=nulldb bundle exec rake assets:precompile RAILS_ENV=production"
+ sh "tar -rf tmp/package/stif-boiv-release-#{release_name}.tar vendor/cache"
+ sh "tar -rf tmp/package/stif-boiv-release-#{release_name}.tar public/assets"
+
+ sh "gzip -c tmp/package/stif-boiv-release-#{release_name}.tar > tmp/stif-boiv-release.tar.gz"
+
+ sh "rm -rf tmp/package vendor/cache"
+end