From f6d7e6fa65cffd86c049d68813bb1da6ca673f1c Mon Sep 17 00:00:00 2001 From: Paulo Matos Date: Wed, 9 Oct 2019 14:49:07 +0200 Subject: [PATCH] Docker image files with pre-installed Racket dependencies This should speed up building and testing jobs in Gitlab CI for Linux. --- .gitlab/DockerImages/Dockerfile.builddeps | 10 ++++++++++ .gitlab/DockerImages/Dockerfile.testdeps | 10 ++++++++++ .gitlab/DockerImages/Makefile | 16 ++++++++++++++++ .gitlab/DockerImages/README.md | 11 +++++++++++ 4 files changed, 47 insertions(+) create mode 100644 .gitlab/DockerImages/Dockerfile.builddeps create mode 100644 .gitlab/DockerImages/Dockerfile.testdeps create mode 100644 .gitlab/DockerImages/Makefile create mode 100644 .gitlab/DockerImages/README.md diff --git a/.gitlab/DockerImages/Dockerfile.builddeps b/.gitlab/DockerImages/Dockerfile.builddeps new file mode 100644 index 0000000000..85787b8b8f --- /dev/null +++ b/.gitlab/DockerImages/Dockerfile.builddeps @@ -0,0 +1,10 @@ +FROM debian:buster-slim +LABEL maintainer="pmatos@linki.tools" +LABEL description="Debian Stable Slim image with Racket build dependencies pre-installed. Mostly used for Racket CI." + +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y unzip python libxml2-dev libfindbin-libs-perl make gcc g++ uuid-dev git && \ + apt-get clean + +CMD ["bash"] diff --git a/.gitlab/DockerImages/Dockerfile.testdeps b/.gitlab/DockerImages/Dockerfile.testdeps new file mode 100644 index 0000000000..ae043e80f2 --- /dev/null +++ b/.gitlab/DockerImages/Dockerfile.testdeps @@ -0,0 +1,10 @@ +FROM debian:buster-slim +LABEL maintainer="pmatos@linki.tools" +LABEL description="Debian Stable Slim image with Racket test dependencies pre-installed. Mostly used for Racket CI." + +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y openssl ca-certificates libfontconfig1-dev libpango1.0-dev libcairo2-dev libjpeg-dev libturbojpeg0-dev gcc sqlite && \ + apt-get clean + +CMD ["bash"] diff --git a/.gitlab/DockerImages/Makefile b/.gitlab/DockerImages/Makefile new file mode 100644 index 0000000000..beb93b23a7 --- /dev/null +++ b/.gitlab/DockerImages/Makefile @@ -0,0 +1,16 @@ +all: push-builddeps push-testdeps + +.PHONY: push-builddeps push-testdeps build-testdeps build-testdeps + +push-builddeps: build-builddeps + docker push pmatos/racket-ci:builddeps + +build-builddeps: Dockerfile.builddeps + docker build --file Dockerfile.builddeps --tag pmatos/racket-ci:builddeps . + +push-testdeps: build-testdeps + docker push pmatos/racket-ci:testdeps + +build-testdeps: Dockerfile.testdeps + docker build --file Dockerfile.testdeps --tag pmatos/racket-ci:testdeps . + diff --git a/.gitlab/DockerImages/README.md b/.gitlab/DockerImages/README.md new file mode 100644 index 0000000000..5a746042d3 --- /dev/null +++ b/.gitlab/DockerImages/README.md @@ -0,0 +1,11 @@ +# Docker images for Gitlab CI + +In order to speed up building and testing of Racket, we have prepared some Docker images. +Currently pushed to DockerHub under the pmatos/racket-ci repo. This is then used in the CI +configuration with: + image: "pmatos/racket-ci:testdeps" # for testing jobs + +or: + image: "pmatos/racket-ci:builddeps" # for build jobs + +The Makefile does the build/push automatically but you need to be logged in - use `docker login`.