gvisor/benchmarks/workloads/ruby_template/Dockerfile

39 lines
995 B
Docker
Raw Normal View History

# example based on https://github.com/errm/fib
FROM alpine:3.9 as build
COPY Gemfile Gemfile.lock ./
RUN apk add --no-cache ruby ruby-dev ruby-bundler ruby-json build-base bash \
&& bundle install --frozen -j4 -r3 --no-cache --without development \
&& apk del --no-cache ruby-bundler \
&& rm -rf /usr/lib/ruby/gems/*/cache
FROM alpine:3.9 as prod
COPY --from=build /usr/lib/ruby/gems /usr/lib/ruby/gems
RUN apk add --no-cache ruby ruby-json ruby-etc redis apache2-utils \
&& ruby -e "Gem::Specification.map.each do |spec| \
Gem::Installer.for_spec( \
spec, \
wrappers: true, \
force: true, \
install_dir: spec.base_dir, \
build_args: spec.build_args, \
).generate_bin \
end"
WORKDIR /app
COPY . /app/.
ENV PORT=9292 \
WEB_CONCURRENCY=20 \
WEB_MAX_THREADS=20 \
RACK_ENV=production
ENV host localhost
EXPOSE $PORT
USER nobody
STOPSIGNAL SIGINT
CMD ["sh", "-c", "/usr/bin/puma", "${host}"]