Compare commits

...

2 Commits

Author SHA1 Message Date
derek 2c0f69d0f3 Split apart the base from the app
Docker Build and Release Upload / build-rocm (push) Failing after 12s
2026-05-12 19:30:03 -07:00
derek 1f2f1b60b9 Push to local registry for testing 2026-05-12 19:29:33 -07:00
3 changed files with 182 additions and 160 deletions
+28 -1
View File
@@ -23,11 +23,38 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: build and push rocm-aarch64-base
run: |
docker buildx build \
--platform=linux/arm64 \
-t docker.mistox.net/rocm-aarch64-base:latest \
-f rocm-base-aarch64-dockerfile \
--push \
.
- name: build and push comfyui-rocm
run: |
docker buildx build \
--platform=linux/arm64 \
-t mistox/comfyui-rocm-ampere:latest \
-t docker.mistox.net/comfyui-rocm-ampere:latest \
-f comfyui-rocm-dockerfile \
--push \
.
- name: build and push comfyui-cuda
run: |
docker buildx build \
--platform=linux/arm64 \
-t docker.mistox.net/comfyui-cuda-ampere:latest \
-f comfyui-cuda-dockerfile \
--push \
.
- name: build and push uvicorn
run: |
docker buildx build \
--platform=linux/arm64 \
-t docker.mistox.net/uvicorn-ampere:latest \
-f uvicorn-dockerfile \
--push \
.
+1 -159
View File
@@ -1,163 +1,5 @@
# Use the LTS Ubuntu repo
# Use the rocm-base-aarch64-dockerfile
FROM ubuntu:26.04 AS reqs
# Set global build variables
ENV PIP_BREAK_SYSTEM_PACKAGES=1
ENV PYTHONUNBUFFERED=1
ENV DEBIAN_FRONTEND=noninteractive
ENV MAX_JOBS=10
# Install libraries
RUN apt update -y && \
apt upgrade -y && \
apt install -y --no-install-recommends \
ca-certificates \
wget \
curl \
git \
gfortran \
ninja-build \
g++ \
pkg-config \
xxd \
automake \
libtool \
libegl1-mesa-dev \
texinfo \
bison \
flex \
cmake \
build-essential \
zlib1g-dev \
libncurses5-dev \
libopenblas-dev \
libpthreadpool-dev \
libgoogle-glog-dev \
libgtest-dev \
libbenchmark-dev \
libgdbm-dev \
libnss3-dev \
libssl-dev \
libreadline-dev \
libffi-dev \
libsqlite3-dev \
libelf-dev \
libpciaccess-dev \
protobuf-compiler \
libprotobuf-dev \
libbz2-dev \
liblzma-dev \
&& rm -rf /var/lib/apt/lists/*
# Tested Working
# Build python 3.11
FROM reqs AS python
WORKDIR /build/python
RUN wget https://www.python.org/ftp/python/3.11.15/Python-3.11.15.tgz && \
tar -xf Python-3.11.15.tgz && \
cd Python-3.11.15 && \
./configure --enable-optimizations --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" && \
make -j 80 && \
make install && \
ldconfig /usr/local/lib && \
wget https://bootstrap.pypa.io/get-pip.py && \
python3 get-pip.py && \
ln -s /usr/local/bin/pip3 /bin/pip && \
ln -s /usr/local/bin/pip3 /bin/pip3 && \
ln -s /usr/local/bin/python3 /bin/python && \
ln -s /usr/local/bin/python3 /bin/python3.11
# Tested Working
# Build ROCm latest
FROM python AS ROCm
WORKDIR /build/therock
ENV CFLAGS="-Wno-error=discarded-qualifiers -fcommon -w"
ENV CXXFLAGS="-Wno-error=discarded-qualifiers -fcommon -w"
RUN git clone https://github.com/ROCm/TheRock.git && \
cd TheRock && \
git submodule update --init --recursive && \
env INSTALL_PREFIX=/usr/local ./dockerfiles/install_pinned_patchelf.sh && \
pip install -r requirements.txt && \
cmake -S . -B build \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DTHEROCK_AMDGPU_TARGETS="gfx1100" \
-DTHEROCK_DIST_AMDGPU_FAMILIES="gfx1100" \
-DTHEROCK_AMDGPU_DIST_BUNDLE_NAME="gfx1100" \
-DLLVM_HOST_TRIPLE="aarch64-unknown-linux-gnu" \
-DLLVM_DEFAULT_TARGET_TRIPLE="aarch64-unknown-linux-gnu" \
-DCMAKE_C_FLAGS="$CFLAGS" \
-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi" \
-DLLVM_ENABLE_PROJECTS="clang;lld;flang" \
-DCOMPILER_RT_BUILD_SANITIZERS=OFF \
-DCMAKE_INSTALL_PREFIX=./install && \
cmake --build build -- -j${MAX_JOBS}
# Work in progress [ Breaking due to x86 intrinsics not ported to Aarch64 ]
# Build pytorch
FROM ROCm AS pytorch
# Setup Envronment
ENV PYTORCH_ROCM_ARCH=1100
ENV USE_ROCM=1
ENV USE_CUDA=0
ENV USE_AOTRITON=0
ENV USE_SYSTEM_PTHREADPOOL=1
ENV USE_SYSTEM_PROTOC=1
ENV BUILD_CUSTOM_PROTOBUF=OFF
ENV USE_PYTORCH_QNNPACK=OFF
ENV USE_XNNPACK=OFF
ENV USE_ONNX=OFF
ENV USE_QNNPACK=OFF
ENV USE_NNPACK=OFF
ENV USE_KINETO=OFF
ENV USE_OPENMP=OFF
ENV USE_TENSORPIPE=OFF
ENV ROCM_PATH=/usr
ENV DEVICE_LIB_PATH=/usr/lib/llvm-21/lib/clang/21/amdgcn/bitcode
ENV HIPFLAGS="--rocm-device-lib-path=$DEVICE_LIB_PATH"
ENV CMAKE_ARGS="-DCMAKE_HIP_COMPILER_WORKS=1 \
-DCMAKE_CXX_COMPILER_WORKS=1 \
-DCMAKE_C_COMPILER_WORKS=1 \
-DCMAKE_HIP_COMPILER_ROCM_LIB_PATH=$DEVICE_LIB_PATH \
-DCMAKE_HIP_FLAGS=--rocm-device-lib-path=$DEVICE_LIB_PATH \
-DCMAKE_C_COMPILER=/usr/lib/llvm-21/bin/clang \
-DCMAKE_CXX_COMPILER=/usr/lib/llvm-21/bin/clang++ \
-DCMAKE_HIP_COMPILER=/usr/lib/llvm-21/bin/clang++ \
-DPython3_ROOT_DIR=/usr/local \
-DPYTHON_EXECUTABLE=/usr/local/bin/python3.11 \
-DPYTHON_LIBRARY=/usr/local/lib/libpython3.11.so \
-DPYTHON_INCLUDE_DIR=/usr/local/include/python3.11"
# Pull and build pytorch
WORKDIR /build/pytorch
RUN git clone https://github.com/pytorch/pytorch.git && \
cd pytorch && \
git submodule update --init --recursive && \
make triton && \
python tools/amd_build/build_amd.py && \
pip install -r requirements.txt && \
mkdir -p /opt/rocm/bin \
ln -s /usr/bin/hipcc /opt/rocm/bin/hipcc \
ln -s /usr/lib/llvm-21/bin/clang++ /usr/bin/clang++ \
python3 setup.py build && \
python3 setup.py install
# Failing
# Build pytorch-audio
FROM pytorch AS torchaudio
WORKDIR /build/torchaudio
# Build pytorch-vision
FROM torchaudio AS torchvision
WORKDIR /build/torchaudio
RUN git clone https://github.com/pytorch/vision.git
# Build final stripped down image
FROM ubuntu:26.04 as rocm-aarch64
# Copy in rocm, pytorch, torchaudio, torchvision
# Move to a new image | Build ComfyUI
FROM pytorch AS comfyui
WORKDIR /app
RUN git clone https://github.com/comfyanonymous/ComfyUI.git .
RUN pip3 install -r requirements.txt
+153
View File
@@ -0,0 +1,153 @@
# Use the LTS Ubuntu repo
FROM ubuntu:26.04 AS reqs
# Set global build variables
ENV PIP_BREAK_SYSTEM_PACKAGES=1
ENV PYTHONUNBUFFERED=1
ENV DEBIAN_FRONTEND=noninteractive
ENV MAX_JOBS=10
# Install libraries
RUN apt update -y && \
apt upgrade -y && \
apt install -y --no-install-recommends \
ca-certificates \
wget \
curl \
git \
gfortran \
ninja-build \
g++ \
pkg-config \
xxd \
automake \
libtool \
libegl1-mesa-dev \
texinfo \
bison \
flex \
cmake \
build-essential \
zlib1g-dev \
libncurses5-dev \
libopenblas-dev \
libpthreadpool-dev \
libgoogle-glog-dev \
libgtest-dev \
libbenchmark-dev \
libgdbm-dev \
libnss3-dev \
libssl-dev \
libreadline-dev \
libffi-dev \
libsqlite3-dev \
libelf-dev \
libpciaccess-dev \
protobuf-compiler \
libprotobuf-dev \
libbz2-dev \
liblzma-dev \
&& rm -rf /var/lib/apt/lists/*
# Tested Working
# Build python 3.11
FROM reqs AS python
WORKDIR /build/python
RUN wget https://www.python.org/ftp/python/3.11.15/Python-3.11.15.tgz && \
tar -xf Python-3.11.15.tgz && \
cd Python-3.11.15 && \
./configure --enable-optimizations --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" && \
make -j 80 && \
make install && \
ldconfig /usr/local/lib && \
wget https://bootstrap.pypa.io/get-pip.py && \
python3 get-pip.py && \
ln -s /usr/local/bin/pip3 /bin/pip && \
ln -s /usr/local/bin/pip3 /bin/pip3 && \
ln -s /usr/local/bin/python3 /bin/python && \
ln -s /usr/local/bin/python3 /bin/python3.11
# Tested Working
# Build ROCm latest
FROM python AS ROCm
WORKDIR /build/therock
COPY ./TheRock .
ENV CFLAGS="-Wno-error=discarded-qualifiers -fcommon -w"
ENV CXXFLAGS="-Wno-error=discarded-qualifiers -fcommon -w"
RUN env INSTALL_PREFIX=/usr/local ./dockerfiles/install_pinned_patchelf.sh && \
pip install -r requirements.txt && \
cmake -S . -B build \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DTHEROCK_AMDGPU_TARGETS="gfx1100" \
-DTHEROCK_DIST_AMDGPU_FAMILIES="gfx1100" \
-DTHEROCK_AMDGPU_DIST_BUNDLE_NAME="gfx1100" \
-DLLVM_HOST_TRIPLE="aarch64-unknown-linux-gnu" \
-DLLVM_DEFAULT_TARGET_TRIPLE="aarch64-unknown-linux-gnu" \
-DCMAKE_C_FLAGS="$CFLAGS" \
-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi" \
-DLLVM_ENABLE_PROJECTS="clang;lld;flang" \
-DCOMPILER_RT_BUILD_SANITIZERS=OFF \
-DCMAKE_INSTALL_PREFIX=./install && \
cmake --build build -- -j${MAX_JOBS}
# Work in progress [ Breaking due to x86 intrinsics not ported to Aarch64 ]
# Build pytorch
FROM ROCm AS pytorch
# Setup Envronment
ENV PYTORCH_ROCM_ARCH=1100
ENV USE_ROCM=1
ENV USE_CUDA=0
ENV USE_AOTRITON=0
ENV USE_SYSTEM_PTHREADPOOL=1
ENV USE_SYSTEM_PROTOC=1
ENV BUILD_CUSTOM_PROTOBUF=OFF
ENV USE_PYTORCH_QNNPACK=OFF
ENV USE_XNNPACK=OFF
ENV USE_ONNX=OFF
ENV USE_QNNPACK=OFF
ENV USE_NNPACK=OFF
ENV USE_KINETO=OFF
ENV USE_OPENMP=OFF
ENV USE_TENSORPIPE=OFF
ENV ROCM_PATH=/usr
ENV DEVICE_LIB_PATH=/usr/lib/llvm-21/lib/clang/21/amdgcn/bitcode
ENV HIPFLAGS="--rocm-device-lib-path=$DEVICE_LIB_PATH"
ENV CMAKE_ARGS="-DCMAKE_HIP_COMPILER_WORKS=1 \
-DCMAKE_CXX_COMPILER_WORKS=1 \
-DCMAKE_C_COMPILER_WORKS=1 \
-DCMAKE_HIP_COMPILER_ROCM_LIB_PATH=$DEVICE_LIB_PATH \
-DCMAKE_HIP_FLAGS=--rocm-device-lib-path=$DEVICE_LIB_PATH \
-DCMAKE_C_COMPILER=/usr/lib/llvm-21/bin/clang \
-DCMAKE_CXX_COMPILER=/usr/lib/llvm-21/bin/clang++ \
-DCMAKE_HIP_COMPILER=/usr/lib/llvm-21/bin/clang++ \
-DPython3_ROOT_DIR=/usr/local \
-DPYTHON_EXECUTABLE=/usr/local/bin/python3.11 \
-DPYTHON_LIBRARY=/usr/local/lib/libpython3.11.so \
-DPYTHON_INCLUDE_DIR=/usr/local/include/python3.11"
# Pull and build pytorch
WORKDIR /build/pytorch
RUN git clone https://github.com/pytorch/pytorch.git && \
cd pytorch && \
git submodule update --init --recursive && \
make triton && \
python tools/amd_build/build_amd.py && \
pip install -r requirements.txt && \
mkdir -p /opt/rocm/bin \
ln -s /usr/bin/hipcc /opt/rocm/bin/hipcc \
ln -s /usr/lib/llvm-21/bin/clang++ /usr/bin/clang++ \
python3 setup.py build && \
python3 setup.py install
# Failing
# Build pytorch-audio
FROM pytorch AS torchaudio
WORKDIR /build/torchaudio
# Build pytorch-vision
FROM torchaudio AS torchvision
WORKDIR /build/torchaudio
RUN git clone https://github.com/pytorch/vision.git
# Build final stripped down image
FROM ubuntu:26.04 as rocm-aarch64
# Copy in rocm, pytorch, torchaudio, torchvision