Created
December 28, 2017 12:48
-
-
Save koshigoe/a200c8c10a453604f85b653e19acd947 to your computer and use it in GitHub Desktop.
stack level too deep
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
FROM alpine:3.7 | |
# skip installing gem documentation | |
RUN mkdir -p /usr/local/etc \ | |
&& { \ | |
echo 'install: --no-document'; \ | |
echo 'update: --no-document'; \ | |
} >> /usr/local/etc/gemrc | |
ENV RUBY_MAJOR 2.5 | |
ENV RUBY_VERSION 2.5.0 | |
ENV RUBY_DOWNLOAD_SHA256 1da0afed833a0dab94075221a615c14487b05d0c407f991c8080d576d985b49b | |
ENV RUBYGEMS_VERSION 2.7.4 | |
ENV BUNDLER_VERSION 1.16.1 | |
# some of ruby's build scripts are written in ruby | |
# we purge system ruby later to make sure our final image uses what we just built | |
# readline-dev vs libedit-dev: https://bugs.ruby-lang.org/issues/11869 and https://github.com/docker-library/ruby/issues/75 | |
RUN set -ex \ | |
\ | |
&& apk add --no-cache --virtual .ruby-builddeps \ | |
autoconf \ | |
bison \ | |
bzip2 \ | |
bzip2-dev \ | |
ca-certificates \ | |
coreutils \ | |
dpkg-dev dpkg \ | |
gcc \ | |
gdbm-dev \ | |
glib-dev \ | |
libc-dev \ | |
libffi-dev \ | |
libressl \ | |
libressl-dev \ | |
libxml2-dev \ | |
libxslt-dev \ | |
linux-headers \ | |
make \ | |
ncurses-dev \ | |
procps \ | |
readline-dev \ | |
ruby \ | |
tar \ | |
xz \ | |
yaml-dev \ | |
zlib-dev \ | |
git \ | |
\ | |
&& git clone https://github.com/ruby/ruby.git \ | |
&& cd ruby \ | |
\ | |
# hack in "ENABLE_PATH_CHECK" disabling to suppress: | |
# warning: Insecure world writable dir | |
&& { \ | |
echo '#define ENABLE_PATH_CHECK 0'; \ | |
echo; \ | |
cat file.c; \ | |
} > file.c.new \ | |
&& mv file.c.new file.c \ | |
\ | |
&& autoconf \ | |
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ | |
# the configure script does not detect isnan/isinf as macros | |
&& export ac_cv_func_isnan=yes ac_cv_func_isinf=yes \ | |
&& ./configure \ | |
--build="$gnuArch" \ | |
--disable-install-doc \ | |
--enable-shared \ | |
&& make -j "$(nproc)" \ | |
&& make install \ | |
\ | |
&& runDeps="$( \ | |
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ | |
| tr ',' '\n' \ | |
| sort -u \ | |
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ | |
)" \ | |
&& apk add --virtual .ruby-rundeps $runDeps \ | |
bzip2 \ | |
ca-certificates \ | |
libffi-dev \ | |
libressl-dev \ | |
procps \ | |
yaml-dev \ | |
zlib-dev \ | |
&& apk del .ruby-builddeps \ | |
&& cd / \ | |
&& gem update --system "$RUBYGEMS_VERSION" \ | |
&& gem install bundler --version "$BUNDLER_VERSION" --force | |
# install things globally, for great justice | |
# and don't create ".bundle" in all our apps | |
ENV GEM_HOME /usr/local/bundle | |
ENV BUNDLE_PATH="$GEM_HOME" \ | |
BUNDLE_BIN="$GEM_HOME/bin" \ | |
BUNDLE_SILENCE_ROOT_WARNING=1 \ | |
BUNDLE_APP_CONFIG="$GEM_HOME" | |
ENV PATH $BUNDLE_BIN:$PATH | |
RUN mkdir -p "$GEM_HOME" "$BUNDLE_BIN" \ | |
&& chmod 777 "$GEM_HOME" "$BUNDLE_BIN" | |
CMD [ "irb" ] |
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
require 'rails_helper' | |
RSpec.describe MyClass do | |
describe '#my_method' do | |
subject { MyClass.new.my_method(arg) } | |
context 'when ...' do | |
context 'when ...' do | |
context 'when ...' do | |
context 'when ...' do | |
let(:arg) { create(:arg, :trait, attr: x) } | |
it 'should be ...' do | |
YourClass.new( | |
x: X.x( | |
y: Y.y( | |
z: Z.z( | |
a: A.a( | |
b: B.b | |
) | |
) | |
) | |
) | |
) | |
end | |
end | |
end | |
end | |
end | |
end | |
end |
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
[docker-for-mac]% docker build -t ruby:trunk-alpine3.7 -f Dockerfile . | |
[docker-for-mac]% docker container run --rm -it ruby:trunk-alpine3.7 sh | |
/# gem install rubocop | |
/ # rubocop sample.rb | |
Inspecting 1 file | |
0 files inspected, no offenses detected | |
Traceback (most recent call last): | |
142: from /usr/local/bundle/bin/rubocop:23:in `<main>' | |
141: from /usr/local/bundle/bin/rubocop:23:in `load' | |
140: from /usr/local/bundle/gems/rubocop-0.52.1/bin/rubocop:12:in `<top (required)>' | |
139: from /usr/local/lib/ruby/2.6.0/benchmark.rb:308:in `realtime' | |
138: from /usr/local/bundle/gems/rubocop-0.52.1/bin/rubocop:13:in `block in <top (required)>' | |
137: from /usr/local/bundle/gems/rubocop-0.52.1/lib/rubocop/cli.rb:38:in `run' | |
136: from /usr/local/bundle/gems/rubocop-0.52.1/lib/rubocop/cli.rb:78:in `execute_runners' | |
135: from /usr/local/bundle/gems/rubocop-0.52.1/lib/rubocop/cli.rb:150:in `execute_runner' | |
... 130 levels... | |
4: from /usr/local/bundle/gems/rubocop-0.52.1/lib/rubocop/ast/node.rb:172:in `each' | |
3: from /usr/local/bundle/gems/rubocop-0.52.1/lib/rubocop/ast/node.rb:174:in `block in each_child_node' | |
2: from /usr/local/bundle/gems/rubocop-0.52.1/lib/rubocop/ast/node.rb:87:in `complete!' | |
1: from /usr/local/bundle/gems/rubocop-0.52.1/lib/rubocop/ast/node.rb:172:in `each_child_node' | |
/usr/local/bundle/gems/rubocop-0.52.1/lib/rubocop/ast/node.rb:172:in `each': stack level too deep (SystemStackError) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment