From 60113437e494a5bc0bf7d5a46769b32595182e22 Mon Sep 17 00:00:00 2001 From: Wing Lian Date: Wed, 15 May 2024 22:27:40 -0400 Subject: [PATCH] cloud image w/o tmux (#1628) --- .github/workflows/main.yml | 42 +++++++++++++++++++++++++++++++++ docker/Dockerfile-cloud-no-tmux | 26 ++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 docker/Dockerfile-cloud-no-tmux diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 99190dc71..d0d028982 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -125,3 +125,45 @@ jobs: ${{ steps.metadata.outputs.tags }}-py${{ matrix.python_version }}-cu${{ matrix.cuda }}-${{ matrix.pytorch }}${{ matrix.axolotl_extras != '' && '-' || '' }}${{ matrix.axolotl_extras }} ${{ (matrix.is_latest) && format('{0}-latest', steps.metadata.outputs.tags) || '' }} labels: ${{ steps.metadata.outputs.labels }} + + build-axolotl-cloud-no-tmux: + needs: build-axolotl + if: ${{ ! contains(github.event.commits[0].message, '[skip docker]]') && github.repository_owner == 'OpenAccess-AI-Collective' }} + # this job needs to be run on self-hosted GPU runners... + strategy: + matrix: + include: + - cuda: 121 + cuda_version: 12.1.0 + python_version: "3.11" + pytorch: 2.3.0 + axolotl_extras: + runs-on: axolotl-gpu-runner + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Docker metadata + id: metadata + uses: docker/metadata-action@v5 + with: + images: winglian/axolotl-cloud-term + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Build + uses: docker/build-push-action@v5 + with: + context: . + build-args: | + BASE_TAG=${{ github.ref_name }}-py${{ matrix.python_version }}-cu${{ matrix.cuda }}-${{ matrix.pytorch }}${{ matrix.axolotl_extras != '' && '-' || '' }}${{ matrix.axolotl_extras }} + CUDA=${{ matrix.cuda }} + file: ./docker/Dockerfile-cloud-no-tmux + push: ${{ github.event_name != 'pull_request' }} + tags: | + ${{ steps.metadata.outputs.tags }}-py${{ matrix.python_version }}-cu${{ matrix.cuda }}-${{ matrix.pytorch }}${{ matrix.axolotl_extras != '' && '-' || '' }}${{ matrix.axolotl_extras }} + ${{ (matrix.is_latest) && format('{0}-latest', steps.metadata.outputs.tags) || '' }} + labels: ${{ steps.metadata.outputs.labels }} diff --git a/docker/Dockerfile-cloud-no-tmux b/docker/Dockerfile-cloud-no-tmux new file mode 100644 index 000000000..8af194de0 --- /dev/null +++ b/docker/Dockerfile-cloud-no-tmux @@ -0,0 +1,26 @@ +ARG BASE_TAG=main +FROM winglian/axolotl:$BASE_TAG + +ENV HF_DATASETS_CACHE="/workspace/data/huggingface-cache/datasets" +ENV HUGGINGFACE_HUB_CACHE="/workspace/data/huggingface-cache/hub" +ENV TRANSFORMERS_CACHE="/workspace/data/huggingface-cache/hub" +ENV HF_HOME="/workspace/data/huggingface-cache/hub" +ENV HF_HUB_ENABLE_HF_TRANSFER="1" + +EXPOSE 8888 +EXPOSE 22 + +COPY scripts/cloud-entrypoint.sh /root/cloud-entrypoint.sh +COPY scripts/motd /etc/motd + +RUN pip install jupyterlab notebook ipywidgets && \ + jupyter lab clean +RUN apt install --yes --no-install-recommends openssh-server tmux && \ + mkdir -p ~/.ssh && \ + chmod 700 ~/.ssh && \ + printf "[ ! -z \"\$TERM\" -a -r /etc/motd ] && cat /etc/motd\n" >> ~/.bashrc && \ + chmod +x /workspace/axolotl/scripts/cloud-entrypoint.sh && \ + chmod +x /root/cloud-entrypoint.sh + +ENTRYPOINT ["/root/cloud-entrypoint.sh"] +CMD ["sleep", "infinity"]