# https://hub.docker.com/layers/jruby/library/jruby/9.2.18-jre8/images/sha256-8dd56d26850fbba5c558fe195f98f2cc765d82e91ace601e3fc2273c1f9c95b5 FROM jruby@sha256:8dd56d26850fbba5c558fe195f98f2cc765d82e91ace601e3fc2273c1f9c95b5 # Make apt non-interactive RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci ENV DEBIAN_FRONTEND=noninteractive # Install required packages RUN set -ex; \ apt-get update; \ mkdir -p /usr/share/man/man1; \ apt-get install -y --no-install-recommends \ git mercurial xvfb \ locales sudo openssh-client ca-certificates tar gzip parallel \ net-tools netcat unzip zip bzip2 gnupg curl wget \ tzdata rsync vim less \ build-essential \ shared-mime-info; \ rm -rf /var/lib/apt/lists/*; # Set timezone to UTC by default RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime # Set language RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en # Install jq RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ && chmod +x /usr/bin/jq \ && jq --version # Install Docker RUN set -ex \ && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \ && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ && echo Docker URL: $DOCKER_URL \ && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ && ls -lha /tmp/docker.tgz \ && tar -xz -C /tmp -f /tmp/docker.tgz \ && mv /tmp/docker/* /usr/bin \ && rm -rf /tmp/docker /tmp/docker.tgz \ && which docker \ && (docker version || true) # Install Docker Compose RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ && chmod +x /usr/bin/docker-compose \ && docker-compose version # Install Dockerize RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ && dockerize --version # Install Protobuf compiler RUN export PROTOC_URL=$(curl -s https://api.github.com/repos/protocolbuffers/protobuf/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep -e 'protoc-[.0-9]*-linux-x86_64\.zip' | sort -r | head -n 1) \ && echo Protoc URL: $PROTOC_URL \ && curl --silent --show-error --location --fail --retry 3 --output /tmp/protoc.zip "${PROTOC_URL}" \ && ls -lha /tmp/protoc.zip \ && unzip /tmp/protoc.zip -d /tmp/protoc \ && mv /tmp/protoc/bin/* /usr/bin \ && rm -rf /tmp/protoc /tmp/protoc.zip \ && protoc --version # Install RubyGems RUN gem update --system RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME" # Upgrade RubyGems and Bundler RUN gem uninstall -i /opt/jruby/lib/ruby/gems/shared bundler -v 2.1.4 # Remove when https://github.com/thoughtbot/appraisal/issues/162 is fixed RUN gem install bundler -v 2.1.2 # Remove when https://github.com/thoughtbot/appraisal/issues/162 is fixed ENV BUNDLE_SILENCE_ROOT_WARNING 1 # Ensure JRuby is available when running "bash --login" RUN echo "export PATH=/opt/jruby/bin:$BUNDLE_BIN:\$PATH" >> ~/.profile RUN mkdir /app WORKDIR /app CMD ["bin", "bash", "--login"]