-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
10,976 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
FROM ubuntu:18.04 as build-dep | ||
|
||
# Use bash for the shell | ||
SHELL ["bash", "-c"] | ||
|
||
# Install Node | ||
ENV NODE_VER="8.15.0" | ||
RUN echo "Etc/UTC" > /etc/localtime && \ | ||
apt update && \ | ||
apt -y install wget make gcc g++ python && \ | ||
cd ~ && \ | ||
wget https://nodejs.org/download/release/v$NODE_VER/node-v$NODE_VER.tar.gz && \ | ||
tar xf node-v$NODE_VER.tar.gz && \ | ||
cd node-v$NODE_VER && \ | ||
./configure --prefix=/opt/node && \ | ||
make -j$(nproc) > /dev/null && \ | ||
make install | ||
|
||
# Install jemalloc | ||
ENV JE_VER="5.1.0" | ||
RUN apt update && \ | ||
apt -y install autoconf && \ | ||
cd ~ && \ | ||
wget https://github.com/jemalloc/jemalloc/archive/$JE_VER.tar.gz && \ | ||
tar xf $JE_VER.tar.gz && \ | ||
cd jemalloc-$JE_VER && \ | ||
./autogen.sh && \ | ||
./configure --prefix=/opt/jemalloc && \ | ||
make -j$(nproc) > /dev/null && \ | ||
make install_bin install_include install_lib | ||
|
||
# Install ruby | ||
ENV RUBY_VER="2.6.1" | ||
ENV CPPFLAGS="-I/opt/jemalloc/include" | ||
ENV LDFLAGS="-L/opt/jemalloc/lib/" | ||
RUN apt update && \ | ||
apt -y install build-essential \ | ||
bison libyaml-dev libgdbm-dev libreadline-dev \ | ||
libncurses5-dev libffi-dev zlib1g-dev libssl-dev && \ | ||
cd ~ && \ | ||
wget https://cache.ruby-lang.org/pub/ruby/${RUBY_VER%.*}/ruby-$RUBY_VER.tar.gz && \ | ||
tar xf ruby-$RUBY_VER.tar.gz && \ | ||
cd ruby-$RUBY_VER && \ | ||
./configure --prefix=/opt/ruby \ | ||
--with-jemalloc \ | ||
--with-shared \ | ||
--disable-install-doc && \ | ||
ln -s /opt/jemalloc/lib/* /usr/lib/ && \ | ||
make -j$(nproc) > /dev/null && \ | ||
make install | ||
|
||
ENV PATH="${PATH}:/opt/ruby/bin:/opt/node/bin" | ||
|
||
RUN npm install -g yarn && \ | ||
gem install bundler && \ | ||
apt update && \ | ||
apt -y install git libicu-dev libidn11-dev \ | ||
libpq-dev libprotobuf-dev protobuf-compiler | ||
|
||
COPY Gemfile* package.json yarn.lock /opt/tmp-name/ | ||
|
||
RUN cd /opt/tmp-name && \ | ||
bundle install && \ | ||
yarn install --pure-lockfile | ||
|
||
FROM ubuntu:18.04 | ||
|
||
# Copy over all the langs needed for runtime | ||
COPY --from=build-dep /opt/node /opt/node | ||
COPY --from=build-dep /opt/ruby /opt/ruby | ||
COPY --from=build-dep /opt/jemalloc /opt/jemalloc | ||
|
||
# Add more PATHs to the PATH | ||
ENV PATH="${PATH}:/opt/ruby/bin:/opt/node/bin:/opt/tmp-name/bin" | ||
|
||
# Create the tmp-name user | ||
ARG UID=991 | ||
ARG GID=991 | ||
RUN apt update && \ | ||
echo "Etc/UTC" > /etc/localtime && \ | ||
ln -s /opt/jemalloc/lib/* /usr/lib/ && \ | ||
apt install -y whois wget && \ | ||
addgroup --gid $GID tmp-name && \ | ||
useradd -m -u $UID -g $GID -d /opt/tmp-name tmp-name && \ | ||
echo "tmp-name:`head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 | mkpasswd -s -m sha-256`" | chpasswd | ||
|
||
# Install tmp-name runtime deps | ||
RUN apt -y --no-install-recommends install \ | ||
libssl1.1 libpq5 imagemagick ffmpeg \ | ||
libicu60 libprotobuf10 libidn11 libyaml-0-2 \ | ||
file ca-certificates tzdata libreadline7 && \ | ||
apt -y install gcc && \ | ||
ln -s /opt/tmp-name /tmp-name && \ | ||
gem install bundler && \ | ||
rm -rf /var/cache && \ | ||
rm -rf /var/lib/apt/lists/* | ||
|
||
# Add tini | ||
ENV TINI_VERSION="0.18.0" | ||
ENV TINI_SUM="12d20136605531b09a2c2dac02ccee85e1b874eb322ef6baf7561cd93f93c855" | ||
ADD https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini /tini | ||
RUN echo "$TINI_SUM tini" | sha256sum -c - | ||
RUN chmod +x /tini | ||
|
||
# Copy over tmp-name source, and dependencies from building, and set permissions | ||
COPY --chown=tmp-name:tmp-name . /opt/tmp-name | ||
COPY --from=build-dep --chown=tmp-name:tmp-name /opt/tmp-name /opt/tmp-name | ||
|
||
# Run tmp-name services in prod mode | ||
ENV RAILS_ENV="production" | ||
ENV NODE_ENV="production" | ||
|
||
# Tell rails to serve static files | ||
ENV RAILS_SERVE_STATIC_FILES="true" | ||
|
||
# Set the run user | ||
USER tmp-name | ||
|
||
# Precompile assets | ||
RUN cd ~ && \ | ||
OTP_SECRET=precompile_placeholder SECRET_KEY_BASE=precompile_placeholder rails assets:precompile | ||
# RUN cd ~ && \ | ||
# OTP_SECRET=precompile_placeholder SECRET_KEY_BASE=precompile_placeholder rails assets:precompile && \ | ||
# yarn cache clean | ||
|
||
# Set the work dir and the container entry point | ||
WORKDIR /opt/tmp-name | ||
ENTRYPOINT ["/tini", "--"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
# frozen_string_literal: true | ||
|
||
source 'https://rubygems.org' | ||
ruby '>= 2.4.0', '< 2.7.0' | ||
|
||
gem 'pkg-config', '~> 1.3' | ||
gem 'puma', '~> 3.12' | ||
gem 'rails', '~> 5.2.3' | ||
gem 'thor', '~> 0.20' | ||
|
||
gem 'hamlit-rails', '~> 0.2' | ||
gem 'pg', '~> 1.1' | ||
gem 'makara', '~> 0.4' | ||
gem 'pghero', '~> 2.2' | ||
gem 'dotenv-rails', '~> 2.7' | ||
|
||
gem 'aws-sdk-s3', '~> 1.43', require: false | ||
gem 'fog-core', '<= 2.1.0' | ||
gem 'fog-openstack', '~> 0.3', require: false | ||
gem 'paperclip', '~> 6.0' | ||
gem 'paperclip-av-transcoder', '~> 0.6' | ||
gem 'streamio-ffmpeg', '~> 3.0' | ||
gem 'blurhash', '~> 0.1' | ||
|
||
gem 'active_model_serializers', '~> 0.10' | ||
gem 'addressable', '~> 2.6' | ||
gem 'bootsnap', '~> 1.4', require: false | ||
gem 'browser' | ||
gem 'charlock_holmes', '~> 0.7.6' | ||
gem 'iso-639' | ||
gem 'chewy', '~> 5.0' | ||
gem 'cld3', '~> 3.2.4' | ||
gem 'devise', '~> 4.6' | ||
gem 'devise-two-factor', '~> 3.0' | ||
|
||
gem 'wsc_sdk', '~> 1.3.1' | ||
|
||
group :pam_authentication, optional: true do | ||
gem 'devise_pam_authenticatable2', '~> 9.2' | ||
end | ||
|
||
gem 'net-ldap', '~> 0.10' | ||
gem 'omniauth-cas', '~> 1.1' | ||
gem 'omniauth-saml', '~> 1.10' | ||
gem 'omniauth', '~> 1.9' | ||
|
||
gem 'doorkeeper', '~> 5.1' | ||
gem 'fast_blank', '~> 1.0' | ||
gem 'fastimage' | ||
gem 'goldfinger', '~> 2.1' | ||
gem 'hiredis', '~> 0.6' | ||
gem 'redis-namespace', '~> 1.5' | ||
gem 'htmlentities', '~> 4.3' | ||
gem 'http', '~> 3.3' | ||
gem 'http_accept_language', '~> 2.1' | ||
gem 'http_parser.rb', '~> 0.6.0', git: 'https://github.com/tmm1/http_parser.rb', ref: '54b17ba8c7d8d20a16dfc65d1775241833219cf2' | ||
gem 'httplog', '~> 1.3' | ||
gem 'idn-ruby', require: 'idn' | ||
gem 'kaminari', '~> 1.1' | ||
gem 'link_header', '~> 0.0' | ||
gem 'mime-types', '~> 3.2', require: 'mime/types/columnar' | ||
gem 'nokogiri', '~> 1.10' | ||
gem 'nsa', '~> 0.2' | ||
gem 'oj', '~> 3.7' | ||
gem 'ostatus2', '~> 2.0' | ||
gem 'ox', '~> 2.11' | ||
gem 'posix-spawn', git: 'https://github.com/rtomayko/posix-spawn', ref: '58465d2e213991f8afb13b984854a49fcdcc980c' | ||
gem 'pundit', '~> 2.0' | ||
gem 'premailer-rails' | ||
gem 'rack-attack', '~> 6.0' | ||
gem 'rack-cors', '~> 1.0', require: 'rack/cors' | ||
gem 'rails-i18n', '~> 5.1' | ||
gem 'rails-settings-cached', '~> 0.6' | ||
gem 'redis', '~> 4.1', require: ['redis', 'redis/connection/hiredis'] | ||
gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock' | ||
gem 'rqrcode', '~> 0.10' | ||
gem 'sanitize', '~> 5.0' | ||
gem 'sidekiq', '~> 5.2' | ||
gem 'sidekiq-scheduler', '~> 3.0' | ||
gem 'sidekiq-unique-jobs', '~> 6.0' | ||
gem 'sidekiq-bulk', '~>0.2.0' | ||
gem 'simple-navigation', '~> 4.0' | ||
gem 'simple_form', '~> 4.1' | ||
gem 'sprockets-rails', '~> 3.2', require: 'sprockets/railtie' | ||
gem 'stoplight', '~> 2.1.3' | ||
gem 'strong_migrations', '~> 0.4' | ||
gem 'tty-command', '~> 0.8', require: false | ||
gem 'tty-prompt', '~> 0.19', require: false | ||
gem 'twitter-text', '~> 1.14' | ||
gem 'tzinfo-data', '~> 1.2019' | ||
gem 'webpacker', '~> 4.0' | ||
gem 'webpush' | ||
|
||
gem 'json-ld', '~> 3.0' | ||
gem 'json-ld-preloaded', '~> 3.0' | ||
gem 'rdf-normalize', '~> 0.3' | ||
|
||
group :development, :test do | ||
gem 'fabrication', '~> 2.20' | ||
gem 'fuubar', '~> 2.4' | ||
gem 'i18n-tasks', '~> 0.9', require: false | ||
gem 'pry-byebug', '~> 3.7' | ||
gem 'pry-rails', '~> 0.3' | ||
gem 'rspec-rails', '~> 3.8' | ||
end | ||
|
||
group :production, :test do | ||
gem 'private_address_check', '~> 0.5' | ||
end | ||
|
||
group :test do | ||
gem 'capybara', '~> 3.25' | ||
gem 'climate_control', '~> 0.2' | ||
gem 'faker', '~> 1.9' | ||
gem 'microformats', '~> 4.1' | ||
gem 'rails-controller-testing', '~> 1.0' | ||
gem 'rspec-sidekiq', '~> 3.0' | ||
gem 'simplecov', '~> 0.16', require: false | ||
gem 'webmock', '~> 3.6' | ||
gem 'parallel_tests', '~> 2.29' | ||
end | ||
|
||
group :development do | ||
gem 'active_record_query_trace', '~> 1.6' | ||
gem 'annotate', '~> 2.7' | ||
gem 'better_errors', '~> 2.5' | ||
gem 'binding_of_caller', '~> 0.7' | ||
gem 'bullet', '~> 6.0' | ||
gem 'letter_opener', '~> 1.7' | ||
gem 'letter_opener_web', '~> 1.3' | ||
gem 'memory_profiler' | ||
gem 'rubocop', '~> 0.72', require: false | ||
gem 'rubocop-rails', '~> 2.0', require: false | ||
gem 'brakeman', '~> 4.5', require: false | ||
gem 'bundler-audit', '~> 0.6', require: false | ||
|
||
gem 'capistrano', '~> 3.11' | ||
gem 'capistrano-rails', '~> 1.4' | ||
gem 'capistrano-rbenv', '~> 2.1' | ||
gem 'capistrano-yarn', '~> 2.0' | ||
gem 'ultrahook', '~> 1.0.1' | ||
|
||
gem 'derailed_benchmarks' | ||
gem 'stackprof' | ||
end | ||
|
||
group :production do | ||
gem 'lograge', '~> 0.11' | ||
gem 'redis-rails', '~> 5.0' | ||
end | ||
|
||
gem 'concurrent-ruby', require: false | ||
gem 'connection_pool', require: false |
Oops, something went wrong.