Skip to content

Commit

Permalink
build(docker): upgraded docker image to ubuntu 24.04 (#98)
Browse files Browse the repository at this point in the history
  • Loading branch information
wirespecter committed Jul 15, 2024
1 parent 419bed6 commit db9cb56
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 77 deletions.
42 changes: 21 additions & 21 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on: [push, pull_request]

jobs:
lint-commitlint:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -36,7 +36,7 @@ jobs:
./run-tests.sh --check-commitlint ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} ${{ github.event.pull_request.number }}
lint-shellcheck:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -47,15 +47,15 @@ jobs:
./run-tests.sh --check-shellcheck
lint-black:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: "3.12"

- name: Check Python code formatting
run: |
Expand All @@ -64,15 +64,15 @@ jobs:
./run-tests.sh --check-black
lint-flake8:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: "3.12"

- name: Check compliance with pep8, pyflakes and circular complexity
run: |
Expand All @@ -81,15 +81,15 @@ jobs:
./run-tests.sh --check-flake8
lint-pydocstyle:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: "3.12"

- name: Check compliance with Python docstring conventions
run: |
Expand All @@ -98,15 +98,15 @@ jobs:
./run-tests.sh --check-pydocstyle
lint-check-manifest:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: "3.12"

- name: Check Python manifest completeness
run: |
Expand All @@ -115,15 +115,15 @@ jobs:
./run-tests.sh --check-manifest
docs-sphinx:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: "3.12"

- name: Install system dependencies
run: |
Expand All @@ -134,35 +134,35 @@ jobs:
- name: Install system dependencies
run: |
sudo apt-get update -y
sudo apt-get install python3-dev graphviz libgraphviz-dev pkg-config
sudo apt-get install python3.12-dev graphviz libgraphviz-dev pkg-config uuid-dev
- name: Install Python dependencies
run: |
pip install --upgrade pip 'setuptools<65.6' py wheel
pip install --upgrade pip 'setuptools<70.3' py wheel
pip install -e .[all]
- name: Run Sphinx documentation with doctests
run: ./run-tests.sh --check-sphinx

python-tests:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: "3.12"

- name: Install system dependencies
run: |
sudo apt-get update -y
sudo apt-get install python3-dev graphviz libgraphviz-dev pkg-config
sudo apt-get install python3.12-dev graphviz libgraphviz-dev pkg-config uuid-dev
- name: Install Python dependencies
run: |
pip install --upgrade pip 'setuptools<65.6' py
pip install --upgrade pip 'setuptools<70.3' py
pip install twine wheel
pip install -e .[all]
Expand All @@ -176,7 +176,7 @@ jobs:
files: coverage.xml

lint-dockerfile:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -185,7 +185,7 @@ jobs:
run: ./run-tests.sh --check-dockerfile

docker-build:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -194,7 +194,7 @@ jobs:
run: ./run-tests.sh --check-docker-build

release-docker:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
if: >
vars.RELEASE_DOCKER == 'true' &&
github.event_name == 'push' &&
Expand Down
46 changes: 22 additions & 24 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,16 @@
# under the terms of the MIT License; see LICENSE file for more details.

# Use Ubuntu LTS base image
FROM docker.io/library/ubuntu:20.04
FROM docker.io/library/ubuntu:24.04

# Recognise target architecture
ARG TARGETARCH

# Use default answers in installation commands
ENV DEBIAN_FRONTEND=noninteractive

# Use distutils provided by the standard Python library instead of the vendored one in
# setuptools, so that editable installations are stored in the right directory.
# See https://github.com/pypa/setuptools/issues/3301
ENV SETUPTOOLS_USE_DISTUTILS=stdlib
# Allow pip to install packages in the system site-packages dir
ENV PIP_BREAK_SYSTEM_PACKAGES=true

# Prepare list of Python dependencies
COPY requirements.txt /code/
Expand All @@ -35,14 +33,14 @@ RUN apt-get update -y && \
imagemagick \
krb5-config \
krb5-user \
libauthen-krb5-perl \
libauthen-krb5-simple-perl \
libkrb5-dev \
libssl-dev \
make \
pkg-config \
python3-dev \
python3.12-dev \
python3-pip \
python3.8 \
python3.12 \
uuid-dev \
vim-tiny && \
# Install xrootd
Expand All @@ -60,21 +58,8 @@ RUN apt-get update -y && \
libxrootd-client-dev \
xrootd-client) \
fi && \
pip install --no-cache-dir --upgrade pip setuptools && \
pip install --no-cache-dir -r /code/requirements.txt && \
apt-get remove -y \
cmake \
g++ \
gcc \
graphviz-dev \
libssl-dev \
make \
pkg-config \
python3-dev \
uuid-dev && \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
pip install --no-cache-dir --upgrade setuptools && \
pip install --no-cache-dir -r /code/requirements.txt

# Copy cluster component source code
WORKDIR /code
Expand All @@ -99,7 +84,20 @@ RUN if test -e modules/reana-commons; then \
else \
pip install --no-cache-dir "modules/reana-commons[snakemake_reports]" --upgrade; \
fi \
fi
fi && \
apt-get remove -y \
cmake \
g++ \
gcc \
graphviz-dev \
libssl-dev \
make \
pkg-config \
python3.12-dev \
uuid-dev && \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Check for any broken Python dependencies
RUN pip check
Expand Down
60 changes: 29 additions & 31 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,79 +1,77 @@
#
# This file is autogenerated by pip-compile with Python 3.8
# This file is autogenerated by pip-compile with Python 3.12
# by the following command:
#
# pip-compile --annotation-style=line --output-file=requirements.txt requirements.in setup.py
# pip-compile --annotation-style=line --output-file=requirements.txt setup.py
#
amqp==5.2.0 # via kombu
appdirs==1.4.4 # via fs, snakemake
attrs==23.2.0 # via jsonschema
backports-zoneinfo[tzdata]==0.2.1 # via backports-zoneinfo, kombu
bracex==2.4 # via wcmatch
bravado==10.3.2 # via reana-commons
bravado-core==6.1.0 # via bravado, reana-commons
certifi==2024.2.2 # via requests
certifi==2024.7.4 # via requests
charset-normalizer==3.3.2 # via requests
checksumdir==1.1.9 # via reana-commons
click==8.1.7 # via reana-commons
configargparse==1.7 # via snakemake
connection-pool==0.0.3 # via snakemake
datrie==0.8.2 # via snakemake
docutils==0.20.1 # via snakemake
dpath==2.1.6 # via yte
fastjsonschema==2.19.1 # via nbformat
docutils==0.21.2 # via snakemake
dpath==2.2.0 # via yte
fastjsonschema==2.20.0 # via nbformat
fs==2.4.16 # via reana-commons
gitdb==4.0.11 # via gitpython
gitpython==3.1.42 # via snakemake
gitpython==3.1.43 # via snakemake
humanfriendly==10.0 # via snakemake
idna==3.6 # via jsonschema, requests
jinja2==3.1.3 # via snakemake
jsonpointer==2.4 # via jsonschema
idna==3.7 # via jsonschema, requests
importlib-resources==6.4.0 # via swagger-spec-validator
jinja2==3.1.4 # via snakemake
jsonpointer==3.0.0 # via jsonschema
jsonref==1.1.0 # via bravado-core
jsonschema[format]==3.2.0 # via bravado-core, nbformat, reana-commons, snakemake, swagger-spec-validator
jupyter-core==5.7.1 # via nbformat
kombu==5.3.5 # via reana-commons
jupyter-core==5.7.2 # via nbformat
kombu==5.3.7 # via reana-commons
markupsafe==2.1.5 # via jinja2, werkzeug
mock==3.0.5 # via reana-commons
monotonic==1.6 # via bravado
msgpack==1.0.7 # via bravado-core
msgpack==1.0.8 # via bravado-core
msgpack-python==0.5.6 # via bravado
nbformat==5.9.2 # via snakemake
packaging==23.2 # via snakemake
nbformat==5.10.4 # via snakemake
packaging==24.1 # via snakemake
plac==1.4.3 # via yte
platformdirs==4.2.0 # via jupyter-core
psutil==5.9.8 # via snakemake
platformdirs==4.2.2 # via jupyter-core
psutil==6.0.0 # via snakemake
pulp==2.7.0 # via reana-commons, snakemake
pygments==2.17.2 # via snakemake
pygments==2.18.0 # via snakemake
pygraphviz==1.7 # via reana-commons
pyrsistent==0.20.0 # via jsonschema
python-dateutil==2.9.0 # via bravado, bravado-core
python-dateutil==2.9.0.post0 # via bravado, bravado-core
pytz==2024.1 # via bravado-core
pyyaml==6.0.1 # via bravado, bravado-core, reana-commons, snakemake, swagger-spec-validator, yte
reana-commons[snakemake-reports]==0.95.0a2 # via reana-workflow-engine-snakemake (setup.py)
requests==2.31.0 # via bravado, bravado-core, snakemake
reana-commons[snakemake-reports]==0.95.0a2 # via reana-workflow-engine-snakemake (setup.py)
requests==2.32.3 # via bravado, bravado-core, snakemake
reretry==0.11.8 # via snakemake
rfc3987==1.3.8 # via jsonschema
simplejson==3.19.2 # via bravado, bravado-core
six==1.16.0 # via bravado, bravado-core, fs, jsonschema, mock, python-dateutil
smart-open==7.0.1 # via snakemake
smart-open==7.0.4 # via snakemake
smmap==5.0.1 # via gitdb
snakemake[reports]==7.32.4 # via reana-commons
stopit==1.1.2 # via snakemake
strict-rfc3339==0.7 # via jsonschema
swagger-spec-validator==3.0.3 # via bravado-core
swagger-spec-validator==3.0.4 # via bravado-core
tabulate==0.8.10 # via reana-commons, snakemake
throttler==1.2.2 # via snakemake
toposort==1.10 # via snakemake
traitlets==5.14.1 # via jupyter-core, nbformat
typing-extensions==4.10.0 # via bravado, kombu, swagger-spec-validator
tzdata==2024.1 # via backports-zoneinfo
urllib3==2.2.1 # via requests
traitlets==5.14.3 # via jupyter-core, nbformat
typing-extensions==4.12.2 # via bravado, swagger-spec-validator
urllib3==2.2.2 # via requests
vine==5.1.0 # via amqp, kombu
wcmatch==8.4.1 # via reana-commons
webcolors==1.13 # via jsonschema
werkzeug==3.0.1 # via reana-commons
webcolors==24.6.0 # via jsonschema
werkzeug==3.0.3 # via reana-commons
wrapt==1.16.0 # via smart-open, snakemake
xrootd==5.6.0 # via -r requirements.in
yte==1.5.4 # via snakemake

# The following packages are considered to be unsafe in a requirements file:
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
Expand Down

0 comments on commit db9cb56

Please sign in to comment.