ceph-csi/scripts/Dockerfile.test
Niels de Vos 60e2527917 build: use Fedora 39 as base image for test container
It seems GitHub has an issue with the Fedora 40 container image,
extracting the Golang tarball fails. The Fedora 39 image does not have
this problem, so use that for the time being.

Signed-off-by: Niels de Vos <ndevos@ibm.com>
2024-04-25 13:32:48 +00:00

66 lines
1.9 KiB
Docker

# Container image for running the Ceph-CSI tests
#
# This container is based on Fedora so that recent versions of tools can easily
# be installed.
#
# Production containers are based one ceph/ceph:latest, which use CentOS as
# Operating System, so generated binaries and versions of dependencies may be a
# little different.
#
FROM registry.fedoraproject.org/fedora:39
ARG GOPATH=/go
ARG GOROOT=/usr/local/go
ARG GOARCH
ENV \
GOPATH=${GOPATH} \
GOROOT=${GOROOT} \
GO111MODULE=on \
CEPHCSIPATH=/go/src/github.com/ceph/ceph-csi \
PATH="${GOPATH}/bin:${GOROOT}/bin:/opt/commitlint/node_modules/.bin:${PATH}"
COPY build.env /
RUN mkdir /etc/selinux || true && touch /etc/selinux/config
RUN source /build.env \
&& \
( test -n "${GOARCH}" && exit 0; echo -e "\n\nMissing GOARCH argument for building image, install Golang or run: make containerized-test GOARCH=amd64\n\n"; exit 1 ) \
&& dnf -y install \
git \
make \
gcc \
findutils \
librados-devel \
libcephfs-devel \
librbd-devel \
openssl \
rubygems \
ShellCheck \
codespell \
yamllint \
npm \
diffutils \
python3-prettytable \
pylint \
&& dnf -y update \
&& dnf -y clean all \
&& gem install mdl \
&& mkdir -p ${GOROOT} \
&& curl https://storage.googleapis.com/golang/go${GOLANG_VERSION}.linux-${GOARCH}.tar.gz \
| tar xzf - -C ${GOROOT} --strip-components=1 \
&& curl -sf "https://raw.githubusercontent.com/golangci/golangci-lint/${GOLANGCI_VERSION}/install.sh" \
| bash -s -- -b ${GOPATH}/bin "${GOLANGCI_VERSION}" \
&& curl -L "${HELM_SCRIPT}" | bash -s -- --version "${HELM_VERSION}" \
&& mkdir /opt/commitlint && pushd /opt/commitlint \
&& npm init -y \
&& npm install @commitlint/cli@"${COMMITLINT_VERSION}" \
&& popd \
&& git config --global --add safe.directory ${CEPHCSIPATH} \
&& go install github.com/augmentable-dev/tickgit/cmd/tickgit@latest \
&& true
WORKDIR ${CEPHCSIPATH}