-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
.git |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
.DS_Store |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
FROM ruby:2.5-slim | ||
|
||
COPY Gemfile Gemfile.lock /usr/src/app/ | ||
WORKDIR /usr/src/app | ||
|
||
RUN apt-get update && apt-get -y install libgmp3-dev ruby-dev build-essential libsqlite3-dev && \ | ||
bundle install && \ | ||
apt-get autoremove -y --purge && \ | ||
apt-get remove -y --auto-remove --purge ruby-dev libgmp3-dev build-essential libsqlite3-dev && \ | ||
apt-get clean && \ | ||
rm -rvf /root/* /root/.gem* /var/cache/* | ||
|
||
COPY . /usr/src/app | ||
RUN chmod +x /usr/src/app/startup.sh | ||
|
||
# helpful when trying to update gems -> bundle update, remove the Gemfile.lock, start ruby | ||
# RUN bundle update | ||
# RUN rm -vf /usr/src/app/Gemfile.lock | ||
|
||
EXPOSE 3000 | ||
ENTRYPOINT ["bash","/usr/src/app/startup.sh"] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
source 'https://rubygems.org' | ||
|
||
|
||
gem 'thin' | ||
|
||
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' | ||
gem 'rails', '4.2.10' | ||
# Use sqlite3 as the database for Active Record | ||
gem 'sqlite3' | ||
# Use SCSS for stylesheets | ||
gem 'sass-rails', '~> 5.0' | ||
# Use Uglifier as compressor for JavaScript assets | ||
gem 'uglifier', '>= 1.3.0' | ||
# Use CoffeeScript for .coffee assets and views | ||
gem 'coffee-rails', '~> 4.1.0' | ||
# See https://github.com/rails/execjs#readme for more supported runtimes | ||
gem 'therubyracer', platforms: :ruby | ||
|
||
gem 'activesupport' | ||
|
||
# Use jquery as the JavaScript library | ||
gem 'jquery-rails' | ||
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks | ||
gem 'turbolinks' | ||
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder | ||
gem 'jbuilder', '~> 2.0' | ||
# bundle exec rake doc:rails generates the API under doc/api. | ||
gem 'sdoc', '~> 0.4.0', group: :doc | ||
|
||
# Use ActiveModel has_secure_password | ||
# gem 'bcrypt', '~> 3.1.7' | ||
|
||
# Use Unicorn as the app server | ||
# gem 'unicorn' | ||
|
||
# Use Capistrano for deployment | ||
# gem 'capistrano-rails', group: :development | ||
|
||
group :development, :test do | ||
# Call 'byebug' anywhere in the code to stop execution and get a debugger console | ||
gem 'byebug' | ||
end | ||
|
||
group :development do | ||
# Access an IRB console on exception pages or by using <%= console %> in views | ||
gem 'web-console', '~> 2.0' | ||
|
||
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring | ||
gem 'spring' | ||
end | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,176 @@ | ||
GEM | ||
remote: https://rubygems.org/ | ||
specs: | ||
actionmailer (4.2.10) | ||
actionpack (= 4.2.10) | ||
actionview (= 4.2.10) | ||
activejob (= 4.2.10) | ||
mail (~> 2.5, >= 2.5.4) | ||
rails-dom-testing (~> 1.0, >= 1.0.5) | ||
actionpack (4.2.10) | ||
actionview (= 4.2.10) | ||
activesupport (= 4.2.10) | ||
rack (~> 1.6) | ||
rack-test (~> 0.6.2) | ||
rails-dom-testing (~> 1.0, >= 1.0.5) | ||
rails-html-sanitizer (~> 1.0, >= 1.0.2) | ||
actionview (4.2.10) | ||
activesupport (= 4.2.10) | ||
builder (~> 3.1) | ||
erubis (~> 2.7.0) | ||
rails-dom-testing (~> 1.0, >= 1.0.5) | ||
rails-html-sanitizer (~> 1.0, >= 1.0.3) | ||
activejob (4.2.10) | ||
activesupport (= 4.2.10) | ||
globalid (>= 0.3.0) | ||
activemodel (4.2.10) | ||
activesupport (= 4.2.10) | ||
builder (~> 3.1) | ||
activerecord (4.2.10) | ||
activemodel (= 4.2.10) | ||
activesupport (= 4.2.10) | ||
arel (~> 6.0) | ||
activesupport (4.2.10) | ||
i18n (~> 0.7) | ||
minitest (~> 5.1) | ||
thread_safe (~> 0.3, >= 0.3.4) | ||
tzinfo (~> 1.1) | ||
arel (6.0.4) | ||
binding_of_caller (0.7.3) | ||
debug_inspector (>= 0.0.1) | ||
builder (3.2.3) | ||
byebug (9.1.0) | ||
coffee-rails (4.1.1) | ||
coffee-script (>= 2.2.0) | ||
railties (>= 4.0.0, < 5.1.x) | ||
coffee-script (2.4.1) | ||
coffee-script-source | ||
execjs | ||
coffee-script-source (1.12.2) | ||
concurrent-ruby (1.0.5) | ||
crass (1.0.3) | ||
debug_inspector (0.0.3) | ||
erubis (2.7.0) | ||
execjs (2.7.0) | ||
ffi (1.9.18) | ||
globalid (0.4.1) | ||
activesupport (>= 4.2.0) | ||
i18n (0.9.1) | ||
concurrent-ruby (~> 1.0) | ||
jbuilder (2.7.0) | ||
activesupport (>= 4.2.0) | ||
multi_json (>= 1.2) | ||
jquery-rails (4.3.1) | ||
rails-dom-testing (>= 1, < 3) | ||
railties (>= 4.2.0) | ||
thor (>= 0.14, < 2.0) | ||
json (1.8.6) | ||
libv8 (3.16.14.19-x86_64-linux) | ||
loofah (2.1.1) | ||
crass (~> 1.0.2) | ||
nokogiri (>= 1.5.9) | ||
mail (2.7.0) | ||
mini_mime (>= 0.1.1) | ||
mini_mime (1.0.0) | ||
mini_portile2 (2.3.0) | ||
minitest (5.10.3) | ||
multi_json (1.12.2) | ||
nokogiri (1.8.1) | ||
mini_portile2 (~> 2.3.0) | ||
rack (1.6.8) | ||
rack-test (0.6.3) | ||
rack (>= 1.0) | ||
rails (4.2.10) | ||
actionmailer (= 4.2.10) | ||
actionpack (= 4.2.10) | ||
actionview (= 4.2.10) | ||
activejob (= 4.2.10) | ||
activemodel (= 4.2.10) | ||
activerecord (= 4.2.10) | ||
activesupport (= 4.2.10) | ||
bundler (>= 1.3.0, < 2.0) | ||
railties (= 4.2.10) | ||
sprockets-rails | ||
rails-deprecated_sanitizer (1.0.3) | ||
activesupport (>= 4.2.0.alpha) | ||
rails-dom-testing (1.0.9) | ||
activesupport (>= 4.2.0, < 5.0) | ||
nokogiri (~> 1.6) | ||
rails-deprecated_sanitizer (>= 1.0.1) | ||
rails-html-sanitizer (1.0.3) | ||
loofah (~> 2.0) | ||
railties (4.2.10) | ||
actionpack (= 4.2.10) | ||
activesupport (= 4.2.10) | ||
rake (>= 0.8.7) | ||
thor (>= 0.18.1, < 2.0) | ||
rake (12.3.0) | ||
rb-fsevent (0.10.2) | ||
rb-inotify (0.9.10) | ||
ffi (>= 0.5.0, < 2) | ||
rdoc (4.3.0) | ||
ref (2.0.0) | ||
sass (3.5.4) | ||
sass-listen (~> 4.0.0) | ||
sass-listen (4.0.0) | ||
rb-fsevent (~> 0.9, >= 0.9.4) | ||
rb-inotify (~> 0.9, >= 0.9.7) | ||
sass-rails (5.0.7) | ||
railties (>= 4.0.0, < 6) | ||
sass (~> 3.1) | ||
sprockets (>= 2.8, < 4.0) | ||
sprockets-rails (>= 2.0, < 4.0) | ||
tilt (>= 1.1, < 3) | ||
sdoc (0.4.2) | ||
json (~> 1.7, >= 1.7.7) | ||
rdoc (~> 4.0) | ||
spring (2.0.2) | ||
activesupport (>= 4.2) | ||
sprockets (3.7.1) | ||
concurrent-ruby (~> 1.0) | ||
rack (> 1, < 3) | ||
sprockets-rails (3.2.1) | ||
actionpack (>= 4.0) | ||
activesupport (>= 4.0) | ||
sprockets (>= 3.0.0) | ||
sqlite3 (1.3.13) | ||
therubyracer (0.12.3) | ||
libv8 (~> 3.16.14.15) | ||
ref | ||
thor (0.20.0) | ||
thread_safe (0.3.6) | ||
tilt (2.0.8) | ||
turbolinks (5.0.1) | ||
turbolinks-source (~> 5) | ||
turbolinks-source (5.0.3) | ||
tzinfo (1.2.4) | ||
thread_safe (~> 0.1) | ||
uglifier (4.0.2) | ||
execjs (>= 0.3.0, < 3) | ||
web-console (2.3.0) | ||
activemodel (>= 4.0) | ||
binding_of_caller (>= 0.7.2) | ||
railties (>= 4.0) | ||
sprockets-rails (>= 2.0, < 4.0) | ||
|
||
PLATFORMS | ||
ruby | ||
|
||
DEPENDENCIES | ||
activesupport | ||
byebug | ||
coffee-rails (~> 4.1.0) | ||
jbuilder (~> 2.0) | ||
jquery-rails | ||
rails (= 4.2.10) | ||
sass-rails (~> 5.0) | ||
sdoc (~> 0.4.0) | ||
spring | ||
sqlite3 | ||
therubyracer | ||
turbolinks | ||
uglifier (>= 1.3.0) | ||
web-console (~> 2.0) | ||
|
||
BUNDLED WITH | ||
1.16.1 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Amazon ECS Workshop | ||
|
||
This is part of an Amazon ECS workshop at https://ecsworkshop.com |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Add your own tasks in files placed in lib/tasks ending in .rake, | ||
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. | ||
|
||
require File.expand_path('../config/application', __FILE__) | ||
|
||
Rails.application.load_tasks |
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
// This is a manifest file that'll be compiled into application.js, which will include all the files | ||
// listed below. | ||
// | ||
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, | ||
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. | ||
// | ||
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the | ||
// compiled file. | ||
// | ||
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details | ||
// about supported directives. | ||
// | ||
//= require jquery | ||
//= require jquery_ujs | ||
//= require turbolinks | ||
//= require_tree . |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
/* | ||
* This is a manifest file that'll be compiled into application.css, which will include all the files | ||
* listed below. | ||
* | ||
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, | ||
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path. | ||
* | ||
* You're free to add application-wide styles to this file and they'll appear at the bottom of the | ||
* compiled file so the styles you add here take precedence over styles defined in any styles | ||
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new | ||
* file per style scope. | ||
* | ||
*= require_tree . | ||
*= require_self | ||
*/ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
require 'net/http' | ||
|
||
class ApplicationController < ActionController::Base | ||
# Prevent CSRF attacks by raising an exception. | ||
# For APIs, you may want to use :null_session instead. | ||
protect_from_forgery with: :exception | ||
|
||
# Example endpoint that calls the backend nodejs api | ||
def index | ||
begin | ||
url = URI.parse(backend_addr) | ||
req = Net::HTTP::Get.new(url.to_s) | ||
res = Net::HTTP.start(url.host, url.port) {|http| | ||
http.request(req) | ||
} | ||
|
||
if res.code == '200' | ||
@text = res.body | ||
else | ||
@text = "no backend found" | ||
end | ||
|
||
crystalurl = URI.parse(crystal_addr) | ||
crystalreq = Net::HTTP::Get.new(crystalurl.to_s) | ||
crystalres = Net::HTTP.start(crystalurl.host, crystalurl.port) {|http| | ||
http.request(crystalreq) | ||
} | ||
|
||
if crystalres.code == '200' | ||
@crystal = crystalres.body | ||
else | ||
@crystal = "no backend found" | ||
end | ||
|
||
rescue | ||
@text = "no backend found" | ||
@crystal = "no backend found" | ||
end | ||
end | ||
|
||
# This endpoint is used for health checks. It should return a 200 OK when the app is up and ready to serve requests. | ||
def health | ||
render plain: "OK" | ||
end | ||
|
||
def crystal_addr | ||
crystal_addr = ENV["BACKEND_API"] | ||
# The address will be of the form, http://172.17.0.5:5432, so we add a trailing slash | ||
crystal_addr.sub(/^http:/, 'http:') + "/crystal" | ||
end | ||
|
||
def backend_addr | ||
backend_addr = ENV["BACKEND_API"] | ||
# The address will be of the form, http://172.17.0.5:5432, so we add a trailing slash | ||
backend_addr.sub(/^http:/, 'http:') + "/" | ||
end | ||
|
||
before_action :discover_availability_zone | ||
before_action :code_hash | ||
|
||
def discover_availability_zone | ||
@az = ENV["AZ"] | ||
end | ||
|
||
def code_hash | ||
@code_hash = ENV["CODE_HASH"] | ||
end | ||
|
||
def custom_header | ||
response.headers['Cache-Control'] = 'max-age=86400, public' | ||
end | ||
end |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
module ApplicationHelper | ||
end |