Skip to content

Commit

Permalink
[CI] switch CI docker to Ubuntu20.04
Browse files Browse the repository at this point in the history
  • Loading branch information
rhdong committed Apr 4, 2023
1 parent a22ab78 commit e8cf1a0
Show file tree
Hide file tree
Showing 4 changed files with 122 additions and 7 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/backport.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

jobs:
backport:
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
name: Backport
steps:
- name: Backport Bot
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/make_wheel_Linux_x86.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ else
fi

if [ $TF_VERSION == "2.5.1" ] || [ $TF_VERSION == "2.7.0" ] ; then
export BUILD_IMAGE="tfra/nosla-cuda11.2-cudnn8.1-ubuntu18.04-manylinux2010-multipython:r0.4"
export BUILD_IMAGE="tfra/nosla-cuda11.2.1-cudnn8-ubuntu20.04-manylinux2014-multipython:r0.4"
export TF_CUDA_VERSION="11.2"
export TF_CUDNN_VERSION="8.1"
elif [ $TF_VERSION == "2.4.1" ] ; then
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ env:
jobs:
test-with-bazel:
name: Test with bazel
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v1
Expand All @@ -43,7 +43,7 @@ jobs:
strategy:
matrix:
# TODO: add back 'windows-latest' when it can be compiled.
os: ['macos-10.15', 'ubuntu-18.04']
os: ['macos-10.15', 'ubuntu-20.04']
py-version: ['3.7', '3.8', '3.9']
tf-version: ['2.5.1', '2.7.0']
tf-need-cuda: ['1', '0']
Expand Down Expand Up @@ -97,7 +97,7 @@ jobs:
python-version: ${{ matrix.py-version }}
- name: Setup Bazel
# Ubuntu bazel is run inside of the docker image
if: matrix.os != 'ubuntu-18.04'
if: matrix.os != 'ubuntu-20.04'
run: bash tools/install_deps/install_bazelisk.sh ./
- name: Build wheels
env:
Expand All @@ -124,7 +124,7 @@ jobs:
upload-wheels:
name: Publish wheels to PyPi
needs: [release-wheel, test-with-bazel]
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
strategy:
matrix:
# TODO: add back 'Windows' when it can be compiled.
Expand Down Expand Up @@ -170,7 +170,7 @@ jobs:
upload-dev-container:
name: Upload dev container to DockerHub
needs: [release-wheel, test-with-bazel]
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
strategy:
matrix:
py-version: ['3.7', '3.8', '3.9']
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Dockerfile to build a manylinux 2010 compliant cross-compiler.
#
# Builds a devtoolset gcc/libstdc++ that targets manylinux 2010 compatible
# glibc (2.12) and system libstdc++ (4.4).
#
# To push a new version, run:
# $ docker build -f cuda11.2.1-cudnn8-ubuntu20.04-manylinux2014-multipython.Dockerfile . \
# --tag "tfra/nosla-cuda11.2.1-cudnn8-ubuntu20.04-manylinux2014-multipython:r0.4"
# $ docker push tfra/nosla-cuda11.2.1-cudnn8-ubuntu20.04-manylinux2014-multipython:r0.4

FROM nvidia/cuda:11.2.1-cudnn8-devel-ubuntu20.04 as devtoolset

RUN chmod 777 /tmp/
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
cpio \
file \
flex \
g++ \
make \
patch \
rpm2cpio \
unar \
wget \
xz-utils \
libjpeg-dev \
zlib1g-dev \
libgflags-dev \
libsnappy-dev \
libbz2-dev \
liblz4-dev \
libzstd-dev \
openssh-client \
&& \
rm -rf /var/lib/apt/lists/*

ADD devtoolset/fixlinks.sh fixlinks.sh
ADD devtoolset/build_devtoolset.sh build_devtoolset.sh
ADD devtoolset/rpm-patch.sh rpm-patch.sh

# Set up a sysroot for glibc 2.12 / libstdc++ 4.4 / devtoolset-7 in /dt7.
RUN /build_devtoolset.sh devtoolset-7 /dt7
# Set up a sysroot for glibc 2.12 / libstdc++ 4.4 / devtoolset-8 in /dt8.
RUN /build_devtoolset.sh devtoolset-8 /dt8

# TODO(klimek): Split up into two different docker images.
FROM nvidia/cuda:11.2.0-cudnn8-devel-ubuntu18.04
COPY --from=devtoolset /dt7 /dt7
COPY --from=devtoolset /dt8 /dt8

ENV DEBIAN_FRONTEND=noninteractive

# Copy and run the install scripts.
ARG DEBIAN_FRONTEND=noninteractive

COPY install/install_bootstrap_deb_packages.sh /install/
RUN /install/install_bootstrap_deb_packages.sh

COPY install/install_deb_packages.sh /install/
RUN /install/install_deb_packages.sh

# Install additional packages needed for this image:
# - dependencies to build Python from source
# - patchelf, as it is required by auditwheel
RUN apt-get update && apt-get install -y \
libbz2-dev \
libffi-dev \
libgdbm-dev \
libncurses5-dev \
libnss3-dev \
libreadline-dev \
patchelf \
gcc-multilib \
&& \
rm -rf /var/lib/apt/lists/*

RUN chmod 777 /tmp/
WORKDIR /tmp/

COPY install/install_nccl.sh /install/
RUN /install/install_nccl.sh "2.8.4-1+cuda11.2"

COPY install/install_rocksdb.sh /install/
RUN /install/install_rocksdb.sh "6.22.1"

COPY install/install_bazel.sh /install/
RUN /install/install_bazel.sh "5.1.1"

COPY install/build_and_install_python.sh /install/
RUN /install/build_and_install_python.sh "3.6.9"
RUN /install/build_and_install_python.sh "3.7.7"
RUN /install/build_and_install_python.sh "3.8.2"
RUN /install/build_and_install_python.sh "3.9.7"

COPY install/install_pip_packages_by_version.sh /install/
RUN /install/install_pip_packages_by_version.sh "/usr/local/bin/pip3.9"
RUN /install/install_pip_packages_by_version.sh "/usr/local/bin/pip3.8"
RUN /install/install_pip_packages_by_version.sh "/usr/local/bin/pip3.6"
RUN /install/install_pip_packages_by_version.sh "/usr/local/bin/pip3.7"

ENV CLANG_VERSION="r7f6f9f4cf966c78a315d15d6e913c43cfa45c47c"
COPY install/install_latest_clang.sh /install/
RUN /install/install_latest_clang.sh

COPY install/use_devtoolset_7.sh /install/
RUN /install/use_devtoolset_7.sh

COPY install/install_rocksdb.sh /install/
RUN /install/install_rocksdb.sh "6.22.1"

COPY install/install_openmpi.sh /install/
RUN /install/install_openmpi.sh "4.1.1"

# clean
RUN rm -rf /tmp/*

0 comments on commit e8cf1a0

Please sign in to comment.