From 148e3c922966d0e27ce632278d2d5d6819d6638b Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Sun, 9 Feb 2020 22:55:12 +0100 Subject: [PATCH] Docker --- .circleci/config.yml | 35 +++++++++++++++++------------------ .circleci/script/docker | 6 ++++-- Dockerfile | 27 +++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 20 deletions(-) create mode 100644 Dockerfile diff --git a/.circleci/config.yml b/.circleci/config.yml index c25a8ea2..8fb40122 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -227,16 +227,15 @@ jobs: paths: - ~/.m2 key: v1-dependencies-{{ checksum "project.clj" }} - # docker: - # docker: - # - image: circleci/buildpack-deps:stretch - # steps: - # - checkout - # - setup_remote_docker: - # docker_layer_caching: true - # - run: - # name: Build Docker image - # command: .circleci/script/docker + docker: + docker: + - image: circleci/buildpack-deps:stretch + steps: + - checkout + - setup_remote_docker: + - run: + name: Build Docker image + command: .circleci/script/docker workflows: version: 2 @@ -253,11 +252,11 @@ workflows: - jvm - linux - mac - # - docker: - # filters: - # branches: - # only: master - # requires: - # - jvm - # - linux - # - mac + - docker: + filters: + branches: + only: master + requires: + - jvm + - linux + - mac diff --git a/.circleci/script/docker b/.circleci/script/docker index 69384b31..d2bda10e 100755 --- a/.circleci/script/docker +++ b/.circleci/script/docker @@ -1,7 +1,9 @@ #!/usr/bin/env bash -image_name="borkdude/clj-kondo" -image_tag=$(cat resources/CLJ_KONDO_VERSION) +set -eo pipefail + +image_name="borkdude/babashka" +image_tag=$(cat resources/BABASHKA_VERSION) latest_tag="latest" if [[ $image_tag =~ SNAPSHOT$ ]]; then diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..bbb7c244 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +FROM ubuntu AS BASE + +RUN apt-get update +RUN apt-get install -yy curl unzip build-essential zlib1g-dev +WORKDIR "/opt" +RUN curl -sLO https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.1/graalvm-ce-java8-linux-amd64-19.3.1.tar.gz +RUN tar -xzf graalvm-ce-java8-linux-amd64-19.3.1.tar.gz +ENV GRAALVM_HOME="/opt/graalvm-ce-19.3.1" +ENV JAVA_HOME="/opt/graalvm-ce-19.3.1/bin" +ENV PATH="$PATH:$JAVA_HOME" +COPY . . +RUN apt install -y sudo +RUN ./.circleci/script/install-leiningen +RUN ./script/compile +RUN cp bb /usr/local/bin + + +FROM alpine:3.9 + +# See https://github.com/sgerrand/alpine-pkg-glibc +RUN apk --no-cache add ca-certificates curl +RUN curl -o /etc/apk/keys/sgerrand.rsa.pub -sL https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub +RUN curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.29-r0/glibc-2.29-r0.apk +RUN apk add glibc-2.29-r0.apk +COPY --from=BASE /usr/local/bin/clj-kondo /usr/local/bin +ENV LD_LIBRARY_PATH /lib +CMD ["bb"]