Skip to content

Commit

Permalink
Merge pull request #2625 from chuckatkins/update-containers
Browse files Browse the repository at this point in the history
Update containers
  • Loading branch information
Chuck Atkins authored Feb 18, 2021
2 parents 658ab72 + 3d6cbb1 commit f90a8dc
Show file tree
Hide file tree
Showing 7 changed files with 240 additions and 415 deletions.
48 changes: 48 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Docker

on:
push:
branches:
- master
- release*
pull_request:
branches:
- master
- release*

jobs:
docker:
runs-on: ubuntu-latest
strategy:
matrix:
baseos: [
ubuntu18.04,
ubuntu20.04 ]

steps:
- uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Build image
run: |
if [ "${{github.event_name}}" = "pull_request" ]
then
adios_ver="pr${{ github.event.number }}"
else
adios_ver="${{ github.ref }}"
fi
docker build \
-t ornladios/adios2:${adios_ver}-${{ matrix.baseos }} \
--build-arg adios_ver=${adios_ver} \
--build-arg base=${{ matrix.baseos }} \
scripts/docker/complete
- name: Push image to Docker Hub
if: github.event_name == 'push'
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
run: |
docker login \
--username="${DOCKERHUB_USERNAME}" \
--password="${DOCKERHUB_PASSWORD}" && \
docker push ornladios/adios2:${{ github.ref }}-${{ matrix.baseos }}
40 changes: 40 additions & 0 deletions scripts/docker/complete/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
ARG base=ubuntu20.04
FROM ornladios/adios2:dependencies-${base}

USER root

# Install adios
# Note: There's a little extra bit of trickery here to retrieve active pull
# requests not yet merged. This is only used for CI purposes and can be
# dropped from your own images
ARG adios_ver=master
WORKDIR /opt/adios
RUN git clone https://github.com/ornladios/adios2.git source && \
cd source && \
git fetch origin +refs/pull/*/head:refs/remotes/origin/pr* && \
git checkout ${adios_ver} && \
cd .. && \
mkdir build && \
cd build && \
. /etc/profile && \
if [ -f /etc/redhat-release ]; then module load mpi; fi && \
cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF \
-DADIOS2_BUILD_EXAMPLES=OFF \
../source && \
adios_ver_dir=$(sed -n 's|^set(PACKAGE_VERSION "\([^"]*\)")|\1|p' adios2-config-version.cmake|head -1) && \
cmake -DCMAKE_INSTALL_PREFIX=/opt/adios/${adios_ver_dir} . && \
make -j$(grep -c '^processor' /proc/cpuinfo) install && \
cd .. && \
rm -rf source build && \
echo "export PATH=\"/opt/adios/${adios_ver_dir}/bin:${PATH}\"" \
>> /etc/profile.d/adios2.sh && \
echo "export LD_LIBRARY_PATH=\"/opt/adios/${adios_ver_dir}/lib:${LD_LIBRARY_PATH}\"" \
>> /etc/profile.d/adios2.sh && \
echo "export CMAKE_PREFIX_PATH=\"/opt/adios/${adios_ver_dir}:${CMAKE_PREFIX_PATH}\"" \
>> /etc/profile.d/adios2.sh && \
echo "export PYTHONPATH=\"/opt/adios/${adios_ver_dir}/lib/python3/dist-packages:${PYTHONPATH}\"" \
>> /etc/profile.d/adios2.sh

WORKDIR /home/adios
USER adios
67 changes: 67 additions & 0 deletions scripts/docker/dependencies/centos7/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
FROM centos:centos7

# Install system dependencies
RUN yum upgrade -y && \
yum install -y epel-release && \
yum install -y https://repo.ius.io/ius-release-el7.rpm && \
yum install -y \
sudo curl vim git224 gdb gcc gcc-c++ gcc-gfortran make pkg-config \
openmpi-devel blosc-devel bzip2-devel zeromq-devel \
libzstd-devel hdf5-openmpi-devel cmake3 \
python-devel numpy mpi4py-openmpi libfabric-devel && \
ln -s /usr/bin/cmake3 /usr/local/bin/cmake && \
yum clean all

# Install ZFP
ARG zfp_ver=0.5.5
WORKDIR /opt/zfp
RUN git clone --depth 1 --branch ${zfp_ver} \
https://github.com/LLNL/zfp.git source && \
mkdir build && \
cd build && \
source /etc/profile && \
cmake \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/zfp/${zfp_ver} \
-DBUILD_TESTING=OFF \
../source && \
make -j$(grep -c '^processor' /proc/cpuinfo) install && \
cd .. && \
rm -rf source build && \
echo export PATH="/opt/zfp/${zfp_ver}/bin:${PATH}" \
>> /etc/profile.d/adios2.sh && \
echo export LD_LIBRARY_PATH="/opt/zfp/${zfp_ver}/lib64:${LD_LIBRARY_PATH}" \
>> /etc/profile.d/adios2.sh && \
echo export CMAKE_PREFIX_PATH="/opt/zfp/${zfp_ver}:${CMAKE_PREFIX_PATH}" \
>> /etc/profile.d/adios2.sh

# Install SZ
ARG sz_ver=2.1.11.1
WORKDIR /opt/sz
RUN git clone --depth 1 --branch v${sz_ver} \
https://github.com/disheng222/SZ.git source && \
mkdir build && \
cd build && \
source /etc/profile && \
cmake \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/sz/${sz_ver} \
-DBUILD_TESTS=OFF \
../source && \
make -j$(grep -c '^processor' /proc/cpuinfo) install && \
cd .. && \
rm -rf source build && \
echo export PATH="/opt/sz/${sz_ver}/bin:${PATH}" \
>> /etc/profile.d/adios2.sh && \
echo export LD_LIBRARY_PATH="/opt/sz/${sz_ver}/lib64:${LD_LIBRARY_PATH}" \
>> /etc/profile.d/adios2.sh && \
echo export CMAKE_PREFIX_PATH="/opt/sz/${sz_ver}:${CMAKE_PREFIX_PATH}" \
>> /etc/profile.d/adios2.sh

RUN useradd -G wheel -m adios && echo "adios:adios" | chpasswd && \
echo module load mpi >> /home/adios/.bashrc
WORKDIR /home/adios
USER adios
CMD /bin/bash --login
85 changes: 85 additions & 0 deletions scripts/docker/dependencies/ubuntu/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
ARG ubuntu_ver=18.04
FROM ubuntu:${ubuntu_ver}

# Update apt repos
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update -y && \
apt-get install -y apt-utils

# Install system dependencies
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get install -y \
sudo git gcc g++ gfortran make pkg-config \
openmpi-bin libopenmpi-dev python3-dev python3-numpy python3-mpi4py \
libblosc-dev libbz2-dev libpng-dev libhdf5-openmpi-dev libzmq3-dev \
libzstd-dev

# Install CMake from the Kitware APT repo to get the latest release
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get install -y \
apt-transport-https ca-certificates gnupg wget && \
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc \
2>/dev/null | \
gpg --dearmor - | \
sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \
. /etc/lsb-release && \
echo "deb https://apt.kitware.com/ubuntu/ ${DISTRIB_CODENAME} main" \
> /etc/apt/sources.list.d/kitware.list && \
apt-get update -y && \
apt-get install -y cmake

# Clean up
RUN apt-get clean -y

# Install ZFP
ARG zfp_ver=0.5.5
WORKDIR /opt/zfp
RUN git clone --branch ${zfp_ver} \
https://github.com/LLNL/zfp.git source && \
mkdir build && \
cd build && \
. /etc/profile && \
cmake \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/zfp/${zfp_ver} \
-DBUILD_TESTING=OFF \
../source && \
make -j$(grep -c '^processor' /proc/cpuinfo) install && \
cd .. && \
rm -rf source build && \
echo export PATH="/opt/zfp/${zfp_ver}/bin:${PATH}" \
>> /etc/profile.d/adios2.sh && \
echo export LD_LIBRARY_PATH="/opt/zfp/${zfp_ver}/lib:${LD_LIBRARY_PATH}" \
>> /etc/profile.d/adios2.sh && \
echo export CMAKE_PREFIX_PATH="/opt/zfp/${zfp_ver}:${CMAKE_PREFIX_PATH}" \
>> /etc/profile.d/adios2.sh

# Install SZ
ARG sz_ver=2.1.11.1
WORKDIR /opt/sz
RUN git clone --branch v${sz_ver} \
https://github.com/disheng222/SZ.git source && \
mkdir build && \
cd build && \
. /etc/profile && \
cmake \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/sz/${sz_ver} \
-DBUILD_TESTS=OFF \
../source && \
make -j$(grep -c '^processor' /proc/cpuinfo) install && \
cd .. && \
rm -rf source build && \
echo export PATH="/opt/sz/${sz_ver}/bin:${PATH}" \
>> /etc/profile.d/adios2.sh && \
echo export LD_LIBRARY_PATH="/opt/sz/${sz_ver}/lib:${LD_LIBRARY_PATH}" \
>> /etc/profile.d/adios2.sh && \
echo export CMAKE_PREFIX_PATH="/opt/sz/${sz_ver}:${CMAKE_PREFIX_PATH}" \
>> /etc/profile.d/adios2.sh

RUN useradd -G sudo -m adios && echo "adios:adios" | chpasswd
WORKDIR /home/adios
USER adios
CMD /bin/bash --login
138 changes: 0 additions & 138 deletions scripts/docker/images/centos7/Dockerfile

This file was deleted.

Loading

0 comments on commit f90a8dc

Please sign in to comment.