34 lines
1.5 KiB
Docker
34 lines
1.5 KiB
Docker
# CI image for liquor-cabinet (Ruby 3.1.4).
|
|
FROM ruby:3.1.4-bullseye
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# bullseye is EOL: use the Debian archive mirror and skip valid-until checks.
|
|
RUN sed -i 's|deb.debian.org|archive.debian.org|g; s|security.debian.org|archive.debian.org|g' /etc/apt/sources.list \
|
|
&& echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf.d/99nc \
|
|
&& apt-get update \
|
|
&& apt-get install -y --no-install-recommends build-essential cmake pkg-config autoconf automake \
|
|
bzip2 curl xz-utils ca-certificates openssh-client gettext zlib1g-dev \
|
|
libssl-dev libcurl4-openssl-dev libpcre2-dev libexpat1-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# git >= 2.34.1 is required by the runner's `builtin:checkout`.
|
|
ARG GIT_VERSION=2.45.2
|
|
RUN curl -fsSL "https://mirrors.edge.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.xz" -o /tmp/git.tar.xz \
|
|
&& tar -xJf /tmp/git.tar.xz -C /tmp \
|
|
&& make -C "/tmp/git-${GIT_VERSION}" -j"$(nproc)" NO_TCLTK=1 NO_GETTEXT=1 prefix=/usr/local all \
|
|
&& make -C "/tmp/git-${GIT_VERSION}" NO_TCLTK=1 NO_GETTEXT=1 prefix=/usr/local install \
|
|
&& rm -rf /tmp/git* \
|
|
&& git --version
|
|
|
|
# Node.js 20 for JS actions (e.g. actions/cache) if used later.
|
|
ARG NODE_VERSION=20.18.0
|
|
RUN curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz" -o /tmp/node.tar.xz \
|
|
&& tar -xJf /tmp/node.tar.xz -C /usr/local --strip-components=1 \
|
|
&& rm /tmp/node.tar.xz \
|
|
&& node -v
|
|
|
|
RUN gem install bundler -v 2.3.7 --no-document
|
|
|
|
WORKDIR /workspace
|