setup runpod images
use github.ref_name
This commit is contained in:
34
.github/workflows/main.yml
vendored
34
.github/workflows/main.yml
vendored
@@ -31,10 +31,42 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
build-args: |
|
build-args: |
|
||||||
BASE_TAG=dev-base
|
BASE_TAG=${{ github.ref_name }}-base
|
||||||
file: ./docker/Dockerfile
|
file: ./docker/Dockerfile
|
||||||
push: ${{ github.event_name != 'pull_request' }}
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
tags: ${{ steps.metadata.outputs.tags }}
|
tags: ${{ steps.metadata.outputs.tags }}
|
||||||
labels: ${{ steps.metadata.outputs.labels }}
|
labels: ${{ steps.metadata.outputs.labels }}
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
|
build-axolotl-runpod:
|
||||||
|
needs: build-axolotl
|
||||||
|
if: github.repository_owner == 'OpenAccess-AI-Collective'
|
||||||
|
# this job needs to be run on self-hosted GPU runners...
|
||||||
|
runs-on: self-hosted
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Docker metadata
|
||||||
|
id: metadata
|
||||||
|
uses: docker/metadata-action@v3
|
||||||
|
with:
|
||||||
|
images: winglian/axolotl-runpod
|
||||||
|
- name: Login to Docker Hub
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
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@v4
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
build-args: |
|
||||||
|
BASE_TAG=${{ github.ref_name }}
|
||||||
|
file: ./docker/Dockerfile-runpod
|
||||||
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
|
tags: ${{ steps.metadata.outputs.tags }}
|
||||||
|
labels: ${{ steps.metadata.outputs.labels }}
|
||||||
|
cache-from: type=gha
|
||||||
|
cache-to: type=gha,mode=max
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ FROM winglian/axolotl-base:$BASE_TAG
|
|||||||
ARG TORCH_CUDA_ARCH_LIST="7.0 7.5 8.0 8.6+PTX"
|
ARG TORCH_CUDA_ARCH_LIST="7.0 7.5 8.0 8.6+PTX"
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y vim
|
apt-get install -y vim curl
|
||||||
|
|
||||||
WORKDIR /workspace
|
WORKDIR /workspace
|
||||||
|
|
||||||
@@ -16,3 +16,6 @@ RUN mkdir axolotl
|
|||||||
COPY . axolotl/
|
COPY . axolotl/
|
||||||
RUN cd axolotl && \
|
RUN cd axolotl && \
|
||||||
pip install -e .[int4]
|
pip install -e .[int4]
|
||||||
|
|
||||||
|
# helper for huggingface-login cli
|
||||||
|
RUN git config --global credential.helper store
|
||||||
|
|||||||
11
docker/Dockerfile-runpod
Normal file
11
docker/Dockerfile-runpod
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
ARG BASE_TAG=main
|
||||||
|
FROM winglian/axolotl:$BASE_TAG
|
||||||
|
|
||||||
|
RUN apt install --yes --no-install-recommends openssh-server tmux && \
|
||||||
|
mkdir -p ~/.ssh && \
|
||||||
|
chmod 700 ~/.ssh && \
|
||||||
|
echo -e "\n[[ -z \"\$TMUX\" ]] && { tmux attach-session -t ssh_tmux || tmux new-session -s ssh_tmux; exit; }" >> ~/.bashrc && \
|
||||||
|
chmod +x /workdir/axolotl/scripts/runpod-entrypoint.sh
|
||||||
|
|
||||||
|
ENTRYPOINT ["/workdir/axolotl/scripts/runpod-entrypoint.sh"]
|
||||||
|
CMD ["sleep", "infinity"]
|
||||||
10
scripts/runpod-entrypoint.sh
Normal file
10
scripts/runpod-entrypoint.sh
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo $PUBLIC_KEY >> ~/.ssh/authorized_keys
|
||||||
|
chmod 700 -R ~/.ssh
|
||||||
|
|
||||||
|
# Start the SSH service in the background
|
||||||
|
service ssh start
|
||||||
|
|
||||||
|
# Execute the passed arguments (CMD)
|
||||||
|
exec "$@"
|
||||||
Reference in New Issue
Block a user