FROM ubuntu:22.04
SHELL ["/bin/bash", "-c"]
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ="Asia/shanghai"
RUN apt update && \
apt install --yes --no-install-recommends --no-install-suggests \
bash \
ca-certificates \
curl \
git \
gnupg \
make \
sudo \
unzip \
vim \
wget && \
apt clean && \
rm -rf /var/lib/apt/lists/* && \
update-ca-certificates
RUN echo "deb http://ppa.launchpad.net/deadsnakes/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/deadsnakes-ppa.list && \
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA6932366A755776 && \
apt-get update
RUN apt update && \
apt install --yes --no-install-recommends --no-install-suggests \
clang \
clang-format \
cmake \
lld \
ninja-build \
python3-dev \
python3-venv \
python3.11 \
python3.11-dev \
python3.11-venv \
python3.11-distutils \
python3.9 \
python3.9-dev \
python3.9-venv \
python3.9-distutils \
zlib1g-dev && \
apt clean && \
rm -rf /var/lib/apt/lists/*
RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3.9 && \
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10 && \
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.11 && \
update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 \
--slave /usr/bin/python3 python3 /usr/bin/python3.9 \
--slave /usr/bin/pip pip /usr/local/bin/pip3.9 \
--slave /usr/bin/pip3 pip3 /usr/local/bin/pip3.9 && \
update-alternatives --install /usr/bin/python python /usr/bin/python3.10 2 \
--slave /usr/bin/python3 python3 /usr/bin/python3.10 \
--slave /usr/bin/pip pip /usr/local/bin/pip3.10 \
--slave /usr/bin/pip3 pip3 /usr/local/bin/pip3.10 && \
update-alternatives --install /usr/bin/python python /usr/bin/python3.11 3 \
--slave /usr/bin/python3 python3 /usr/bin/python3.11 \
--slave /usr/bin/pip pip /usr/local/bin/pip3.11 \
--slave /usr/bin/pip3 pip3 /usr/local/bin/pip3.11 && \
rm -f /usr/local/bin/pip /usr/local/bin/pip3 && \
update-alternatives --set python /usr/bin/python3.10
COPY Makefile requirements.txt requirements_dev.txt llvm-hash.txt build/
RUN cd build && \
make install-deps && \
make install-cann && \
for PY in python3.9 python3.10 python3.11; do \
make install-dev-reqs PYTHON=${PY} && \
make install-rt-reqs PYTHON=${PY} && \
rm -f .req_rt_installed .req_dev_installed && \
rm -rf ~/.cache/pip; \
done && \
cd .. && \
rm -rf build
RUN echo "source /usr/local/Ascend/ascend-toolkit/set_env.sh" >> ~/.bashrc && \
echo "export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/common/:/usr/local/Ascend/driver/lib64/driver/:$LD_LIBRARY_PATH" >> ~/.bashrc