diff --git a/Dockerfile b/Dockerfile index 84e2716..2451de9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,22 @@ -FROM alpine:3.2 +FROM alpine:latest MAINTAINER CenturyLink Labs -RUN apk --update add ruby-dev ca-certificates && \ - gem install --no-rdoc --no-ri docker-api && \ - apk del ruby-dev ca-certificates && \ - apk add ruby ruby-json && \ +RUN apk --update add \ + gcc \ + libc-dev \ + make \ + ruby \ + ruby-dev \ + ruby-irb \ + ruby-json && \ + gem install --no-rdoc --no-ri bundler -v 1.16.1 && \ rm /var/cache/apk/* +WORKDIR /usr/src/app +ADD Gemfile /usr/src/app/ +ADD Gemfile.lock /usr/src/app/ +RUN bundle ADD dockerfile-from-image.rb /usr/src/app/dockerfile-from-image.rb -ENTRYPOINT ["/usr/src/app/dockerfile-from-image.rb"] +ENTRYPOINT ["/usr/bin/bundle", "exec", "ruby", "/usr/src/app/dockerfile-from-image.rb"] CMD ["--help"] diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..537e33e --- /dev/null +++ b/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +gem 'docker' +gem 'docker-api' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..e1c74dd --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,21 @@ +GEM + remote: https://rubygems.org/ + specs: + backticks (1.0.2) + docker (0.4.0) + backticks (~> 1.0.0) + docker-api (1.34.2) + excon (>= 0.47.0) + multi_json + excon (0.62.0) + multi_json (1.13.1) + +PLATFORMS + ruby + +DEPENDENCIES + docker + docker-api + +BUNDLED WITH + 1.16.1 diff --git a/dockerfile-from-image.rb b/dockerfile-from-image.rb index d247da6..1933cad 100755 --- a/dockerfile-from-image.rb +++ b/dockerfile-from-image.rb @@ -30,8 +30,8 @@ # Collect all image tags into a hash keyed by layer ID. # Used to look-up potential FROM targets. tags = Docker::Image.all.each_with_object({}) do |image, hsh| - tag = image.info['RepoTags'].first - hsh[image.id] = tag unless tag == NONE_TAG + tag = image.info['RepoTags']&.first + hsh[image.id] = tag if tag && tag != NONE_TAG end loop do