Closed alvaro-gh closed 5 years ago
Vieja van respuestas:
Logger => Si en el config/env/prod.rb podes setear eso, podes hacer:
config.logger = ::Logger.new('/logs/app.log, 7, 1024000)
y eso te va a meter el log ahí, te mantiene 7 archivos y te los trunca a 10Mb
Lo del socketio, si no calienta a donde apunte, mientras ande jaja también podrías apuntarlo todo al nginx y elegir por puerto. Pero es meterle una capa que para la red interna no tiene mucho sentido =)
Lo de docker, termine haciendo lo que hice porque para bajar una imagensota e igual meterle toda la mugre arriba, hice una custom. Las gemas en gral necesitan varias librerías como libxml2 o la de postgresql-server-dev. Con respecto al therubyracer, es preferible meterle un node base que esa webada (the rubyracer precompila libv8 y la carga constantemente). Fuera de esos detalles mientras uses ruby<= 2.3 sea por ubuntu o alpine, deberia ir como piña (la 2.4 depreca unas clases base, que quizás explote todo). [Lo del alpine me preocupa un poco lo del broadcast, lo demas no hay nada que dependa del SO].
Cualquier cosa chifle :+1:
Esto estaría todo resuelto
Anoto todo en un solo issue para no spammearte. Estoy tratando de ordenar el deploy de los contenedores y hacer que los servicios sean más independientes.
Logs
Ya que en el deploy del cuartel los logs terminan en un directorio compartido, te comento algunos problemas que tuve para homogeneizar un poco las cosas.
SocketIO
Ya que estoy separando los servicios y el proxy reverso de NGINX queda por afuera, lo web va por firehouse.bvgc.org y los servicios en server.bvgc.org para no romper la retrocompatibilidad. Modifiqué el js
app/assets/javascripts/interventions_updater.js.erb
para que tome el host de socketio por una variable de entorno. Eso también supongo que se puede meter en el Rakefile para que sea más visible la relación de la app con ese servicio.Ruby
Para no depender de imagenes custom, los servicios están corriendo a partir de imagenes de Docker oficiales de Ruby. Lo único que tuve que agregar para firehouse fue un runtime de JS, así que agregué en el Gemfile la dependencia de therubyracer. Además, para buildear es necesario utilizar Ruby 2.2 como mínimo.
Eso es lo que he visto por ahora.