Skip to content

Instantly share code, notes, and snippets.

@jemc
Last active August 29, 2015 14:04
Show Gist options
  • Save jemc/2727707a9232e5c82d12 to your computer and use it in GitHub Desktop.
Save jemc/2727707a9232e5c82d12 to your computer and use it in GitHub Desktop.
Rubinius Dockerfile
Running 1 tasks using 4 parallel threads
1: GN vm/test/runner.cpp
1: CXX vm/test/runner.cpp
Build time: 21.520776848 seconds
2: LD vm/test/runner
Running 651 tests...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................OK!
bin/mspec ci :ci_files -t bin/rbx -d --background
rubinius 2.3.0.n304 (2.1.0 f129cf10 2014-10-31 3.5.0 JI) [x86_64-linux-gnu]
..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................F.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
1)
Process.kill raises an Errno::EPERM if permission is denied FAILED
Expected Errno::EPERM but no exception was raised (1 was returned)
SpecExpectation.fail_with at mspec/lib/mspec/expectations
/expectations.rb:15
Object(Proc)#should at mspec/lib/mspec/expectations/should.rb:8
{ } in Object#__script__ at spec/ruby/core/process/kill_spec.rb:68
BasicObject(Object)#instance_eval at kernel/common/eval.rb:43
MSpec.protect at mspec/lib/mspec/runner/mspec.rb:69
{ } in ContextState#protect at mspec/lib/mspec/runner/context.rb:179
{ } in Enumerable(Array)#all? at kernel/common/enumerable.rb:328
Array#each at kernel/bootstrap/array.rb:76
Enumerable(Array)#all? at kernel/common/enumerable.rb:328
ContextState#protect at mspec/lib/mspec/runner/context.rb:179
{ } in ContextState#process at mspec/lib/mspec/runner/context.rb:208
{ } in MSpec.repeat at mspec/lib/mspec/runner/mspec.rb:239
Integer(Fixnum)#times at kernel/common/integer.rb:196
MSpec.repeat at mspec/lib/mspec/runner/mspec.rb:238
{ } in ContextState#process at mspec/lib/mspec/runner/context.rb:200
Array#each at kernel/bootstrap/array.rb:76
ContextState#process at mspec/lib/mspec/runner/context.rb:199
MSpec.describe at mspec/lib/mspec/runner/mspec.rb:38
Object#describe at mspec/lib/mspec/runner/object.rb:11
{ } in Object#__script__ at spec/ruby/core/process/kill_spec.rb:66
Object#as_user at mspec/lib/mspec/guards/user.rb:13
Object#__script__ at spec/ruby/core/process/kill_spec.rb:65
Kernel.load at kernel/common/kernel.rb:465
{ } in MSpec.files at mspec/lib/mspec/runner/mspec.rb:57
BasicObject(Object)#instance_eval at kernel/common/eval.rb:43
MSpec.protect at mspec/lib/mspec/runner/mspec.rb:69
{ } in MSpec.files at mspec/lib/mspec/runner/mspec.rb:57
Array#each at kernel/bootstrap/array.rb:76
MSpec.files at mspec/lib/mspec/runner/mspec.rb:51
MSpec.process at mspec/lib/mspec/runner/mspec.rb:43
MSpecCI#run at mspec/lib/mspec/commands/mspec-ci.rb:78
MSpecScript.main at mspec/lib/mspec/utils/script.rb:218
Object#__script__ at mspec/bin/mspec-ci:8
Rubinius::CodeLoader#load_script at kernel/delta/code_loader.rb:66
Rubinius::CodeLoader.load_script at kernel/delta/code_loader.rb:152
Rubinius::Loader#script at kernel/loader.rb:645
Rubinius::Loader#main at kernel/loader.rb:799
Finished in 241.908684 seconds
2147 files, 20037 examples, 152822 expectations, 1 failure, 0 errors
2014/10/31 13:58:42 The command [/bin/sh -c sg users -c rake spec] returned a non-zero code: 1
FROM buildpack-deps
# Make a user, group, and home folder
RUN useradd user -g users -d /home/user -m
# Install build and test dependencies for rubinius.
# The ruby installed here is only for building and will be purged later.
RUN apt-get update && apt-get install -y llvm clang ruby ruby-dev bison procps libedit-dev
RUN gem install bundler --no-document
# Import the rubinius source directory
# TODO: move src to .
ADD src /usr/src/rubinius
WORKDIR /usr/src/rubinius
RUN chown -R user:users .
# Install gem dependencies for building rubinius
RUN bash -c "export CC=clang && export CXX=clang++ && bundle install"
# Set user and group
USER user:users
# Set HOME because rubinius tests expect it
ENV HOME /home/user
# Set SHELL because ./configure uses it
ENV SHELL /bin/bash
# Set locale because rubysl-zlib lacks rb_econv_* support
ENV LANG C.UTF-8
# Build rubinius
RUN bash -c "export CC=clang && export CXX=clang++ && rake build"
# Run tests for rubinius
# `sg` is used here because they expect to be run with a supplementary group
RUN sg users -c rake spec
# Install rubinius
RUN rake install
# Purge the build ruby
USER root
RUN apt-get purge -y ruby
USER user:users
# Add rubinius to the PATH
ENV PATH /usr/src/rubinius/bin:$PATH
# Set up the same ruby environment as the "ruby" docker image
RUN echo 'gem: --no-document' >> ~/.gemrc
RUN gem install bundler
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment