Skip to content

Commit

Permalink
Add iRODS 4.3-nightly client development image
Browse files Browse the repository at this point in the history
  • Loading branch information
kjsanger committed Sep 25, 2023
1 parent 9ba61d4 commit 11d754f
Show file tree
Hide file tree
Showing 7 changed files with 535 additions and 3 deletions.
25 changes: 22 additions & 3 deletions docker/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,24 @@ DOCKER_ARGS ?= --platform linux/amd64 --progress=plain --rm
.PHONY: clean push

image_names := ub-16.04-base ub-18.04-base ub-22.04-base

image_names += ub-16.04-irods-4.2.7
image_names += ub-18.04-irods-4.2.11
image_names += ub-18.04-irods-4.2.12
image_names += ub-18.04-irods-4.3.0

image_names += ub-22.04-irods-4.3-nightly

image_names += ub-16.04-irods-clients-dev-4.2.7
image_names += ub-18.04-irods-clients-dev-4.2.11
image_names += ub-18.04-irods-clients-dev-4.2.12
image_names += ub-18.04-irods-clients-dev-4.3.0
image_names += ub-20.04-irods-clients-dev-4.3.0
image_names += ub-22.04-irods-clients-dev-4.3-nightly

image_names += ub-16.04-irods-clients-4.2.7
image_names += ub-18.04-irods-clients-4.2.11
image_names += ub-18.04-irods-clients-4.2.12
image_names += ub-22.04-irods-clients-4.3-nightly

image_names += centos-7-base
image_names += centos-7-conda
Expand Down Expand Up @@ -339,8 +341,6 @@ ub-18.04-irods-clients-dev-4.2.11.$(TAG): irods_clients_dev/ubuntu/Dockerfile
--build-arg DOCKER_IMAGE=$(subst .$(TAG),,$@) \
--build-arg DOCKER_TAG=$(TAG) \
--build-arg IRODS_VERSION=4.2.11 \
--build-arg BATON_VERSION=4.1.0 \
--build-arg HTSLIB_VERSION=1.18 \
--label org.opencontainers.image.title="iRODS 4.2.11 client development, Ubuntu 18.04" \
--label org.opencontainers.image.source=$(git_url) \
--label org.opencontainers.image.revision=$(git_commit) \
Expand Down Expand Up @@ -402,6 +402,25 @@ ub-20.04-irods-clients-dev-4.3.0.$(TAG): irods_clients_dev/ubuntu/Dockerfile
--tag $(DOCKER_PREFIX)/ub-20.04-irods-clients-dev-4.3.0:$(TAG) --file $< ./irods_clients_dev
touch $@

ub-20.04-irods-clients-dev-4.3-nightly.$(TAG): irods_clients_dev/ubuntu/22.04/Dockerfile
docker buildx build $(DOCKER_ARGS) \
--load \
--build-context singularity=../singularity \
--build-arg DOCKER_PREFIX=$(DOCKER_PREFIX) \
--build-arg BASE_IMAGE=ubuntu:22.04 \
--build-arg IRODS_VERSION=4.3-nightly \
--build-arg DOCKER_IMAGE=$(subst .$(TAG),,$@) \
--build-arg DOCKER_TAG=$(TAG) \
--label org.opencontainers.image.title="iRODS 4.3.0 client development, Ubuntu 20.04" \
--label org.opencontainers.image.source=$(git_url) \
--label org.opencontainers.image.revision=$(git_commit) \
--label org.opencontainers.image.version=$(TAG) \
--label org.opencontainers.image.created=$(NOW) \
--tag $(DOCKER_PREFIX)/ub-22.04-irods-clients-dev-4.3-nightly:latest \
--tag $(DOCKER_PREFIX)/ub-22.04-irods-clients-dev-4.3-nightly:$(TAG) --file $< ./irods_clients_dev
touch $@


%.$(TAG).pushed: %.$(TAG)
docker push $(DOCKER_PREFIX)/$*:$(TAG)
docker push $(DOCKER_PREFIX)/$*:latest
Expand Down
169 changes: 169 additions & 0 deletions docker/irods_clients/ubuntu/16.04/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
# syntax=docker/dockerfile:1

ARG BASE_IMAGE=ubuntu:16.04
FROM $BASE_IMAGE as installer

ARG IRODS_VERSION="4.2.7"
ARG BATON_VERSION="4.1.0"
ARG HTSLIB_VERSION="1.18"
ARG SAMTOOLS_VERSION="1.18"
ARG BCFTOOLS_VERSION="1.18"
ARG HTSLIB_PLUGINS_VERSION="201712"

COPY . /opt/docker/irods_clients

RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
apt-get update && \
apt-get install -q -y --no-install-recommends \
apt-transport-https \
apt-utils \
ca-certificates \
curl \
dirmngr \
gnupg \
gnupg-agent \
lsb-release \
locales && \
locale-gen en_GB en_GB.UTF-8 && \
localedef -i en_GB -c -f UTF-8 -A /usr/share/locale/locale.alias en_GB.UTF-8

ENV LANG=en_GB.UTF-8 \
LANGUAGE=en_GB \
LC_ALL=en_GB.UTF-8

RUN curl -sSL https://packages.irods.org/irods-signing-key.asc | apt-key add - && \
echo "deb [arch=amd64] https://packages.irods.org/apt/ $(lsb_release -sc) main" |\
tee /etc/apt/sources.list.d/renci-irods.list && \
apt-get update && \
apt-get install -q -y --no-install-recommends \
irods-dev="${IRODS_VERSION}" \
irods-runtime="${IRODS_VERSION}" \
irods-icommands="${IRODS_VERSION}"

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "E1DD270288B4E6030699E45FA1715D88E1DF1F24" && \
echo "deb https://ppa.launchpadcontent.net/git-core/ppa/ubuntu $(lsb_release -sc) main" |\
tee /etc/apt/sources.list.d/git-core.list && \
apt-get update && \
apt-get install -q -y --no-install-recommends \
git

# libdeflate-dev is not available on Ubuntu 16.04
RUN apt-get update && \
apt-get install -q -y --no-install-recommends \
autoconf \
automake \
build-essential \
less \
libtool \
pkg-config \
python3-sphinx \
ssh \
libjansson-dev \
libbz2-dev \
libcurl3-dev \
liblzma-dev \
zlib1g-dev

ENV CPPFLAGS="-I/usr/include/irods"

RUN cd /tmp && \
curl -sSL -O "https://github.com/wtsi-npg/baton/releases/download/${BATON_VERSION}/baton-${BATON_VERSION}.tar.gz" && \
tar xfz baton-${BATON_VERSION}.tar.gz && \
cd baton-${BATON_VERSION} && \
./configure && \
make install

RUN cd /tmp && \
curl -sSL -O "https://github.com/samtools/htslib/releases/download/${HTSLIB_VERSION}/htslib-${HTSLIB_VERSION}.tar.bz2" && \
tar xfj htslib-${HTSLIB_VERSION}.tar.bz2 && \
cd htslib-${HTSLIB_VERSION} && \
./configure --enable-plugins --without-curses && \
make install && \
ldconfig

RUN cd /tmp && \
curl -sSL -O "https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VERSION}/samtools-${SAMTOOLS_VERSION}.tar.bz2" && \
tar xfj samtools-${SAMTOOLS_VERSION}.tar.bz2 && \
cd samtools-${SAMTOOLS_VERSION} && \
./configure --with-htslib=system --without-curses && \
make install

RUN cd /tmp && \
curl -sSL -O "https://github.com/samtools/bcftools/releases/download/${BCFTOOLS_VERSION}/bcftools-${BCFTOOLS_VERSION}.tar.bz2" && \
tar xfj bcftools-${BCFTOOLS_VERSION}.tar.bz2 && \
cd bcftools-${BCFTOOLS_VERSION} && \
./configure --with-htslib=system --without-curses && \
make install

RUN cd /tmp && \
git clone --depth 1 --branch ${HTSLIB_PLUGINS_VERSION} "https://github.com/samtools/htslib-plugins.git" && \
cd htslib-plugins && \
make install

FROM $BASE_IMAGE

ARG DOCKER_IMAGE
ARG DOCKER_TAG
ARG IRODS_VERSION="4.2.7"

RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
apt-get update && \
apt-get install -q -y --no-install-recommends \
apt-transport-https \
apt-utils \
ca-certificates \
curl \
dirmngr \
gnupg \
gnupg-agent \
lsb-release \
locales && \
locale-gen en_GB en_GB.UTF-8 && \
localedef -i en_GB -c -f UTF-8 -A /usr/share/locale/locale.alias en_GB.UTF-8

ENV LANG=en_GB.UTF-8 \
LANGUAGE=en_GB \
LC_ALL=en_GB.UTF-8

RUN curl -sSL https://packages.irods.org/irods-signing-key.asc | apt-key add - && \
echo "deb [arch=amd64] https://packages.irods.org/apt/ $(lsb_release -sc) main" |\
tee /etc/apt/sources.list.d/renci-irods.list && \
apt-get update && \
apt-get install -q -y --no-install-recommends \
irods-runtime="${IRODS_VERSION}" \
irods-icommands="${IRODS_VERSION}"

RUN apt-get install -q -y --no-install-recommends \
gnuplot \
jq \
libjansson4 \
libbz2-1.0 \
libcurl3 \
liblzma5 \
perl \
zlib1g \
unattended-upgrades && \
unattended-upgrade -v && \
apt-get remove -q -y unattended-upgrades && \
apt-get autoremove -q -y && \
apt-get clean -q -y && \
rm -rf /var/lib/apt/lists/*

# Copy the installed baton and samtools applications
COPY --from=installer /usr/local /usr/local

# Copy the singularity-wrapper scripts
COPY --from=singularity ./scripts/* /usr/local/bin/
COPY --from=installer /opt/docker/irods_clients/manifest.json /usr/local/irods_clients/etc/manifest.json
COPY --from=installer /opt/docker/irods_clients/scripts/docker-entrypoint.sh /usr/local/irods_clients/bin/docker-entrypoint.sh

# Configure the singularity-wrapper script
ENV MANIFEST_PATH="/usr/local/irods_clients/etc/manifest.json"
ENV DOCKER_IMAGE="$DOCKER_IMAGE"
ENV DOCKER_TAG="$DOCKER_TAG"

RUN ldconfig

ENTRYPOINT ["/usr/local/irods_clients/bin/docker-entrypoint.sh"]

CMD ["/bin/bash"]
Loading

0 comments on commit 11d754f

Please sign in to comment.