Skip to content

Commit

Permalink
Merge pull request #83 from kjsanger/feature/irods-4.3.1
Browse files Browse the repository at this point in the history
Add iRODS 4.3.1 official release
  • Loading branch information
kjsanger authored Nov 1, 2023
2 parents 7a6fa4f + c6ef1bf commit c4177bc
Show file tree
Hide file tree
Showing 19 changed files with 570 additions and 101 deletions.
72 changes: 55 additions & 17 deletions docker/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,20 @@ 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.1
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.1
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.1
image_names += ub-22.04-irods-clients-4.3-nightly

git_url=$(shell git remote get-url origin)
Expand Down Expand Up @@ -138,7 +140,21 @@ ub-18.04-irods-4.3.0.$(TAG): irods/ubuntu/18.04/Dockerfile ub-18.04-base.$(TAG)
--tag $(DOCKER_PREFIX)/ub-18.04-irods-4.3.0:$(TAG) --file $< ./irods
touch $@

ub-22.04-irods-4.3-nightly.$(TAG): irods/ubuntu/22.04/Dockerfile ub-22.04-base.$(TAG)
ub-22.04-irods-4.3.1.$(TAG): irods/ubuntu/22.04/Dockerfile ub-22.04-base.$(TAG)
docker buildx build $(DOCKER_ARGS) \
--load \
--build-arg BASE_IMAGE=$(DOCKER_PREFIX)/ub-22.04-base \
--build-arg IRODS_VERSION=4.3.1 \
--label org.opencontainers.image.title="iRODS 4.3.1 server, Ubuntu 22.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-4.3.1:latest \
--tag $(DOCKER_PREFIX)/ub-22.04-irods-4.3.1:$(TAG) --file $< ./irods
touch $@

ub-22.04-irods-4.3-nightly.$(TAG): irods/ubuntu/22.04/Dockerfile.nightly ub-22.04-base.$(TAG)
docker buildx build $(DOCKER_ARGS) \
--load \
--build-arg BASE_IMAGE=$(DOCKER_PREFIX)/ub-22.04-base \
Expand Down Expand Up @@ -173,7 +189,7 @@ ub-16.04-irods-clients-4.2.7.$(TAG): irods_clients/ubuntu/16.04/Dockerfile ub-16
--tag $(DOCKER_PREFIX)/ub-16.04-irods-clients-4.2.7:$(TAG) --file $< ./irods_clients
touch $@

ub-18.04-irods-clients-4.2.11.$(TAG): irods_clients/ubuntu/Dockerfile ub-18.04-base.$(TAG)
ub-18.04-irods-clients-4.2.11.$(TAG): irods_clients/ubuntu/18.04/Dockerfile ub-18.04-base.$(TAG)
docker buildx build $(DOCKER_ARGS) \
--load \
--build-context singularity=../singularity \
Expand All @@ -194,7 +210,7 @@ ub-18.04-irods-clients-4.2.11.$(TAG): irods_clients/ubuntu/Dockerfile ub-18.04-b
--tag $(DOCKER_PREFIX)/ub-18.04-irods-clients-4.2.11:$(TAG) --file $< ./irods_clients
touch $@

ub-18.04-irods-clients-4.2.12.$(TAG): irods_clients/ubuntu/Dockerfile ub-18.04-base.$(TAG)
ub-18.04-irods-clients-4.2.12.$(TAG): irods_clients/ubuntu/18.04/Dockerfile ub-18.04-base.$(TAG)
docker buildx build $(DOCKER_ARGS) \
--load \
--build-context singularity=../singularity \
Expand All @@ -216,7 +232,29 @@ ub-18.04-irods-clients-4.2.12.$(TAG): irods_clients/ubuntu/Dockerfile ub-18.04-b
--tag $(DOCKER_PREFIX)/ub-18.04-irods-clients-4.2.12:$(TAG) --file $< ./irods_clients
touch $@

ub-22.04-irods-clients-4.3-nightly.$(TAG): irods_clients/ubuntu/22.04/Dockerfile
ub-22.04-irods-clients-4.3.1.$(TAG): irods_clients/ubuntu/22.04/Dockerfile
docker buildx build $(DOCKER_ARGS) \
--load \
--build-context singularity=../singularity \
--build-arg DOCKER_PREFIX=$(DOCKER_PREFIX) \
--build-arg BASE_IMAGE=$(DOCKER_PREFIX)/ub-22.04-base \
--build-arg DOCKER_IMAGE=$(subst .$(TAG),,$@) \
--build-arg DOCKER_TAG=$(TAG) \
--build-arg IRODS_VERSION=4.3.1 \
--build-arg BATON_VERSION=4.2.1 \
--build-arg HTSLIB_VERSION=1.18 \
--build-arg SAMTOOLS_VERSION=1.18 \
--build-arg BCFTOOLS_VERSION=1.18 \
--label org.opencontainers.image.title="iRODS 4.3.1 clients, Ubuntu 22.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-4.3.1:latest \
--tag $(DOCKER_PREFIX)/ub-22.04-irods-clients-4.3.1:$(TAG) --file $< ./irods_clients
touch $@

ub-22.04-irods-clients-4.3-nightly.$(TAG): irods_clients/ubuntu/22.04/Dockerfile.nightly
docker buildx build $(DOCKER_ARGS) \
--load \
--build-context singularity=../singularity \
Expand Down Expand Up @@ -255,7 +293,7 @@ ub-16.04-irods-clients-dev-4.2.7.$(TAG): irods_clients_dev/ubuntu/16.04/Dockerfi
--tag $(DOCKER_PREFIX)/ub-16.04-irods-clients-dev-4.2.7:$(TAG) --file $< ./irods_clients_dev
touch $@

ub-18.04-irods-clients-dev-4.2.11.$(TAG): irods_clients_dev/ubuntu/Dockerfile
ub-18.04-irods-clients-dev-4.2.11.$(TAG): irods_clients_dev/ubuntu/18.04/Dockerfile
docker buildx build $(DOCKER_ARGS) \
--load \
--build-context singularity=../singularity \
Expand All @@ -272,11 +310,11 @@ ub-18.04-irods-clients-dev-4.2.11.$(TAG): irods_clients_dev/ubuntu/Dockerfile
--tag $(DOCKER_PREFIX)/ub-18.04-irods-clients-dev-4.2.11:$(TAG) --file $< ./irods_clients_dev
touch $@

ub-18.04-irods-clients-dev-4.2.12.$(TAG): irods_clients_dev/ubuntu/Dockerfile
ub-18.04-irods-clients-dev-4.2.12.$(TAG): irods_clients_dev/ubuntu/18.04/Dockerfile
docker buildx build $(DOCKER_ARGS) \
--load \
--build-context singularity=../singularity \
--build-arg BASE_IMAGE=ubuntu:bionic \
--build-arg BASE_IMAGE=ubuntu:18.04 \
--build-arg DOCKER_IMAGE=$(subst .$(TAG),,$@) \
--build-arg DOCKER_TAG=$(TAG) \
--build-arg IRODS_VERSION=4.2.12 \
Expand All @@ -289,11 +327,11 @@ ub-18.04-irods-clients-dev-4.2.12.$(TAG): irods_clients_dev/ubuntu/Dockerfile
--tag $(DOCKER_PREFIX)/ub-18.04-irods-clients-dev-4.2.12:$(TAG) --file $< ./irods_clients_dev
touch $@

ub-18.04-irods-clients-dev-4.3.0.$(TAG): irods_clients_dev/ubuntu/Dockerfile
ub-18.04-irods-clients-dev-4.3.0.$(TAG): irods_clients_dev/ubuntu/18.04/Dockerfile
docker buildx build $(DOCKER_ARGS) \
--load \
--build-context singularity=../singularity \
--build-arg BASE_IMAGE=ubuntu:bionic \
--build-arg BASE_IMAGE=ubuntu:18.04 \
--build-arg DOCKER_IMAGE=$(subst .$(TAG),,$@) \
--build-arg DOCKER_TAG=$(TAG) \
--build-arg IRODS_VERSION=4.3.0 \
Expand All @@ -306,25 +344,25 @@ ub-18.04-irods-clients-dev-4.3.0.$(TAG): irods_clients_dev/ubuntu/Dockerfile
--tag $(DOCKER_PREFIX)/ub-18.04-irods-clients-dev-4.3.0:$(TAG) --file $< ./irods_clients_dev
touch $@

ub-20.04-irods-clients-dev-4.3.0.$(TAG): irods_clients_dev/ubuntu/Dockerfile
ub-22.04-irods-clients-dev-4.3.1.$(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:20.04 \
--build-arg IRODS_VERSION=4.3.0 \
--build-arg BASE_IMAGE=ubuntu:22.04 \
--build-arg IRODS_VERSION=4.3.1 \
--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.title="iRODS 4.3.1 client development, Ubuntu 22.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-20.04-irods-clients-dev-4.3.0:latest \
--tag $(DOCKER_PREFIX)/ub-20.04-irods-clients-dev-4.3.0:$(TAG) --file $< ./irods_clients_dev
--tag $(DOCKER_PREFIX)/ub-22.04-irods-clients-dev-4.3.1:latest \
--tag $(DOCKER_PREFIX)/ub-22.04-irods-clients-dev-4.3.1:$(TAG) --file $< ./irods_clients_dev
touch $@

ub-22.04-irods-clients-dev-4.3-nightly.$(TAG): irods_clients_dev/ubuntu/22.04/Dockerfile
ub-22.04-irods-clients-dev-4.3-nightly.$(TAG): irods_clients_dev/ubuntu/22.04/Dockerfile.nightly
docker buildx build $(DOCKER_ARGS) \
--load \
--build-context singularity=../singularity \
Expand Down
9 changes: 7 additions & 2 deletions docker/irods/scripts/configure_irods.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,14 @@ case "$IRODS_VERSION" in
patch /var/lib/irods/scripts/irods/lib.py /opt/docker/irods/patches/patch_lib.diff
python /var/lib/irods/scripts/setup_irods.py < /opt/docker/irods/config/setup_irods.py.in
;;
4.3.*)
4.3.0)
patch /var/lib/irods/scripts/irods/controller.py /opt/docker/irods/patches/patch_controller.diff
sudo python3 /var/lib/irods/scripts/setup_rsyslog_and_logrotate.py # automatic setup for these has been removed
sudo python3 /var/lib/irods/scripts/setup_rsyslog_and_logrotate.py # Automatic setup for these has been removed.
python3 /var/lib/irods/scripts/setup_irods.py < /opt/docker/irods/config/4.3.x.setup_irods.py.in
;;
4.3.1)
patch /var/lib/irods/scripts/irods/controller.py /opt/docker/irods/patches/patch_controller.diff
# Logging has been changed to use rsyslog. A potential enhancement is to configure that here.
python3 /var/lib/irods/scripts/setup_irods.py < /opt/docker/irods/config/4.3.x.setup_irods.py.in
;;
*)
Expand Down
1 change: 1 addition & 0 deletions docker/irods/ubuntu/16.04/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
ARG BASE_IMAGE=16.04-base
FROM $BASE_IMAGE

# This default is the latest usable version
ARG IRODS_VERSION="4.2.7"

WORKDIR /opt/docker/irods
Expand Down
15 changes: 9 additions & 6 deletions docker/irods/ubuntu/18.04/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
ARG BASE_IMAGE=ub-18.04-base
FROM $BASE_IMAGE

ARG IRODS_VERSION="4.3.0"
# The default is the latest usable version
ARG IRODS_VERSION="4.3.1"
# This is the Debian package revision number
ARG IRODS_REVISION="1"

WORKDIR /opt/docker/irods

Expand Down Expand Up @@ -37,11 +40,11 @@ RUN curl -sSL https://packages.irods.org/irods-signing-key.asc | apt-key add - &
tee /etc/apt/sources.list.d/renci-irods.list && \
apt-get update && \
apt-get install -q -y --no-install-recommends \
irods-server="${IRODS_VERSION}-1~$(lsb_release -sc)" \
irods-runtime="${IRODS_VERSION}-1~$(lsb_release -sc)" \
irods-database-plugin-postgres="${IRODS_VERSION}-1~$(lsb_release -sc)" \
irods-icommands="${IRODS_VERSION}-1~$(lsb_release -sc)" \
irods-dev="${IRODS_VERSION}-1~$(lsb_release -sc)" && \
irods-server="${IRODS_VERSION}-${IRODS_REVISION}~$(lsb_release -sc)" \
irods-runtime="${IRODS_VERSION}-${IRODS_REVISION}~$(lsb_release -sc)" \
irods-database-plugin-postgres="${IRODS_VERSION}-${IRODS_REVISION}~$(lsb_release -sc)" \
irods-icommands="${IRODS_VERSION}-${IRODS_REVISION}~$(lsb_release -sc)" \
irods-dev="${IRODS_VERSION}-${IRODS_REVISION}~$(lsb_release -sc)" && \
apt-get install -q -y -f && \
unattended-upgrade -v && \
apt-get remove -q -y unattended-upgrades && \
Expand Down
31 changes: 17 additions & 14 deletions docker/irods/ubuntu/22.04/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
ARG BASE_IMAGE=ub-22.04-base
FROM $BASE_IMAGE

ARG IRODS_VERSION="nightly"
# The default is the latest usable version
ARG IRODS_VERSION="4.3.1"
# This is the Debian package revision number
ARG IRODS_REVISION="0"

WORKDIR /opt/docker/irods

Expand Down Expand Up @@ -32,22 +35,22 @@ ENV LANG=en_GB.UTF-8 \
LANGUAGE=en_GB \
LC_ALL=en_GB.UTF-8

# Required to get the externals packages
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

ENV NIGHTLY_URL_BASE=https://github.com/wtsi-npg/irods_development_environment/releases/download/nightly/

RUN curl -sSL \
-O ${NIGHTLY_URL_BASE}irods-database-plugin-postgres_4.3.1-0.jammy_amd64.deb \
-O ${NIGHTLY_URL_BASE}irods-dev_4.3.1-0.jammy_amd64.deb \
-O ${NIGHTLY_URL_BASE}irods-runtime_4.3.1-0.jammy_amd64.deb \
-O ${NIGHTLY_URL_BASE}irods-server_4.3.1-0.jammy_amd64.deb \
-O ${NIGHTLY_URL_BASE}irods-icommands_4.3.1-0.jammy_amd64.deb

RUN ls -l && apt-get install -y ./*.deb
apt-get update && \
apt-get install -q -y --no-install-recommends \
irods-server="${IRODS_VERSION}-${IRODS_REVISION}~$(lsb_release -sc)" \
irods-runtime="${IRODS_VERSION}-${IRODS_REVISION}~$(lsb_release -sc)" \
irods-database-plugin-postgres="${IRODS_VERSION}-${IRODS_REVISION}~$(lsb_release -sc)" \
irods-icommands="${IRODS_VERSION}-${IRODS_REVISION}~$(lsb_release -sc)" \
irods-dev="${IRODS_VERSION}-${IRODS_REVISION}~$(lsb_release -sc)" && \
apt-get install -q -y -f && \
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/*

RUN /opt/docker/irods/scripts/create_database.sh && \
/opt/docker/irods/scripts/configure_irods.sh
Expand Down
60 changes: 60 additions & 0 deletions docker/irods/ubuntu/22.04/Dockerfile.nightly
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
ARG BASE_IMAGE=ub-22.04-base
FROM $BASE_IMAGE

ARG IRODS_VERSION="nightly"

WORKDIR /opt/docker/irods

COPY ./scripts/*.sh ./scripts/
COPY ./config/* ./config/
COPY ./patches/* ./patches/

RUN echo "debconf debconf/frontend select Noninteractive" | debconf-set-selections && \
apt-get update && \
apt-get install -q -y --no-install-recommends \
apt-utils \
ca-certificates \
curl \
gpg \
gpg-agent \
lsb-release \
jq \
netcat \
patch \
postgresql \
rsyslog \
unattended-upgrades \
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

# Required to get the externals packages
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

ENV NIGHTLY_URL_BASE=https://github.com/wtsi-npg/irods_development_environment/releases/download/nightly/

RUN curl -sSL \
-O ${NIGHTLY_URL_BASE}irods-database-plugin-postgres_4.3.1-0.jammy_amd64.deb \
-O ${NIGHTLY_URL_BASE}irods-dev_4.3.1-0.jammy_amd64.deb \
-O ${NIGHTLY_URL_BASE}irods-runtime_4.3.1-0.jammy_amd64.deb \
-O ${NIGHTLY_URL_BASE}irods-server_4.3.1-0.jammy_amd64.deb \
-O ${NIGHTLY_URL_BASE}irods-icommands_4.3.1-0.jammy_amd64.deb

RUN ls -l && apt-get update && apt-get install -y ./*.deb

RUN /opt/docker/irods/scripts/create_database.sh && \
/opt/docker/irods/scripts/configure_irods.sh

EXPOSE 1247

HEALTHCHECK --interval=10s --timeout=30s --start-period=5s --retries=3 CMD [ "nc", "-v", "-z", "localhost", "1247" ]

ENTRYPOINT []
CMD ["/opt/docker/irods/scripts/start_irods.sh"]
2 changes: 1 addition & 1 deletion docker/irods/ubuntu/22.04/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ The iRODS server starts with a single user 'irods' configured.

To run the container (with iCAT port binding to the host machine):

`docker run -d --name irods -p 1247:1247 wtsi-npg/ub-18.04-irods-[VERSION]:latest`
`docker run -d --name irods -p 1247:1247 wtsi-npg/ub-22.04-irods-[VERSION]:latest`

where [VERSION] is the required release e.g. 4.3.0

Expand Down
19 changes: 14 additions & 5 deletions docker/irods_clients/ubuntu/16.04/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,18 +1,27 @@
# syntax=docker/dockerfile:1

ARG BASE_IMAGE=ubuntu:16.04
FROM $BASE_IMAGE as installer
# Set defaults for all build stages

# This default is the latest usable version
# The latest usable version
ARG IRODS_VERSION="4.2.7"

# These defaults are the latest usable versions
# The latest usable versions
ARG BATON_VERSION="4.2.1"
ARG HTSLIB_VERSION="1.18"
ARG SAMTOOLS_VERSION="1.18"
ARG BCFTOOLS_VERSION="1.18"
ARG HTSLIB_PLUGINS_VERSION="201712"

ARG BASE_IMAGE=ubuntu:16.04
FROM $BASE_IMAGE as installer

ARG IRODS_VERSION
ARG BATON_VERSION
ARG HTSLIB_VERSION
ARG SAMTOOLS_VERSION
ARG BCFTOOLS_VERSION
ARG HTSLIB_PLUGINS_VERSION

COPY . /opt/docker/irods_clients

RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
Expand Down Expand Up @@ -105,7 +114,7 @@ FROM $BASE_IMAGE

ARG DOCKER_IMAGE
ARG DOCKER_TAG
ARG IRODS_VERSION="4.2.7"
ARG IRODS_VERSION

RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
apt-get update && \
Expand Down
Loading

0 comments on commit c4177bc

Please sign in to comment.