winglian commited on
Commit
79deb35
1 Parent(s): 7576d85

setup runpod images

Browse files
.github/workflows/main.yml CHANGED
@@ -31,10 +31,42 @@ jobs:
31
  with:
32
  context: .
33
  build-args: |
34
- BASE_TAG=dev-base
35
  file: ./docker/Dockerfile
36
  push: ${{ github.event_name != 'pull_request' }}
37
  tags: ${{ steps.metadata.outputs.tags }}
38
  labels: ${{ steps.metadata.outputs.labels }}
39
  cache-from: type=gha
40
  cache-to: type=gha,mode=max
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  with:
32
  context: .
33
  build-args: |
34
+ BASE_TAG=${{ github.ref_name }}-base
35
  file: ./docker/Dockerfile
36
  push: ${{ github.event_name != 'pull_request' }}
37
  tags: ${{ steps.metadata.outputs.tags }}
38
  labels: ${{ steps.metadata.outputs.labels }}
39
  cache-from: type=gha
40
  cache-to: type=gha,mode=max
41
+ build-axolotl-runpod:
42
+ needs: build-axolotl
43
+ if: github.repository_owner == 'OpenAccess-AI-Collective'
44
+ # this job needs to be run on self-hosted GPU runners...
45
+ runs-on: self-hosted
46
+ steps:
47
+ - name: Checkout
48
+ uses: actions/checkout@v3
49
+ - name: Docker metadata
50
+ id: metadata
51
+ uses: docker/metadata-action@v3
52
+ with:
53
+ images: winglian/axolotl-runpod
54
+ - name: Login to Docker Hub
55
+ uses: docker/login-action@v2
56
+ with:
57
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
58
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
59
+ - name: Set up Docker Buildx
60
+ uses: docker/setup-buildx-action@v2
61
+ - name: Build
62
+ uses: docker/build-push-action@v4
63
+ with:
64
+ context: .
65
+ build-args: |
66
+ BASE_TAG=${{ github.ref_name }}
67
+ file: ./docker/Dockerfile-runpod
68
+ push: ${{ github.event_name != 'pull_request' }}
69
+ tags: ${{ steps.metadata.outputs.tags }}
70
+ labels: ${{ steps.metadata.outputs.labels }}
71
+ cache-from: type=gha
72
+ cache-to: type=gha,mode=max
docker/Dockerfile CHANGED
@@ -4,7 +4,7 @@ FROM winglian/axolotl-base:$BASE_TAG
4
  ARG TORCH_CUDA_ARCH_LIST="7.0 7.5 8.0 8.6+PTX"
5
 
6
  RUN apt-get update && \
7
- apt-get install -y vim
8
 
9
  WORKDIR /workspace
10
 
@@ -16,3 +16,6 @@ RUN mkdir axolotl
16
  COPY . axolotl/
17
  RUN cd axolotl && \
18
  pip install -e .[int4]
 
 
 
 
4
  ARG TORCH_CUDA_ARCH_LIST="7.0 7.5 8.0 8.6+PTX"
5
 
6
  RUN apt-get update && \
7
+ apt-get install -y vim curl
8
 
9
  WORKDIR /workspace
10
 
 
16
  COPY . axolotl/
17
  RUN cd axolotl && \
18
  pip install -e .[int4]
19
+
20
+ # helper for huggingface-login cli
21
+ RUN git config --global credential.helper store
docker/Dockerfile-runpod ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ARG BASE_TAG=main
2
+ FROM winglian/axolotl:$BASE_TAG
3
+
4
+ RUN apt install --yes --no-install-recommends openssh-server tmux && \
5
+ mkdir -p ~/.ssh && \
6
+ chmod 700 ~/.ssh && \
7
+ echo -e "\n[[ -z \"\$TMUX\" ]] && { tmux attach-session -t ssh_tmux || tmux new-session -s ssh_tmux; exit; }" >> ~/.bashrc && \
8
+ chmod +x /workdir/axolotl/scripts/runpod-entrypoint.sh
9
+
10
+ ENTRYPOINT ["/workdir/axolotl/scripts/runpod-entrypoint.sh"]
11
+ CMD ["sleep", "infinity"]
scripts/runpod-entrypoint.sh ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ echo $PUBLIC_KEY >> ~/.ssh/authorized_keys
4
+ chmod 700 -R ~/.ssh
5
+
6
+ # Start the SSH service in the background
7
+ service ssh start
8
+
9
+ # Execute the passed arguments (CMD)
10
+ exec "$@"