Skip to content

Commit 47a3596

Browse files
authored
Merge pull request #219 from imoneoi/docker
[docker] serving and ci workflow
2 parents a14b2ef + 9ddc08b commit 47a3596

File tree

3 files changed

+90
-0
lines changed

3 files changed

+90
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Docker Build and Push
2+
3+
on:
4+
workflow_run:
5+
workflows: ["Publish to PyPI.org"]
6+
types:
7+
- completed
8+
9+
jobs:
10+
docker:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v4
15+
16+
- name: Set up QEMU
17+
uses: docker/setup-qemu-action@v3
18+
19+
- name: Set up Docker Buildx
20+
uses: docker/setup-buildx-action@v3
21+
22+
- name: Login to Docker Hub
23+
uses: docker/login-action@v3
24+
with:
25+
username: ${{ secrets.DOCKERHUB_USERNAME }}
26+
password: ${{ secrets.DOCKERHUB_TOKEN }}
27+
28+
- name: Build and push
29+
uses: docker/build-push-action@v5
30+
with:
31+
context: ./docker/serving
32+
platforms: linux/amd64
33+
push: true
34+
tags: ${{ secrets.DOCKERHUB_TAG }}

docker/serving/Dockerfile

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
FROM python:3.11-slim-bookworm
2+
3+
######### Setup system
4+
5+
RUN mkdir /workspace && mkdir /workspace/transformers_cache
6+
WORKDIR /workspace
7+
8+
ENV HF_HOME /workspace/transformers_cache
9+
10+
######### Install system dependencies
11+
RUN apt update && apt install -y git bash curl wget libxml2
12+
13+
# Install ssh server, remove all pre-generated ssh host keys, and disable password auth
14+
RUN apt install -y openssh-server && \
15+
rm -f /etc/ssh/ssh_host_* && \
16+
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
17+
18+
# Install CUDA (for FlashAttention 2)
19+
RUN wget -q --show-progress --progress=bar:force:noscroll -O cuda_installer https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run && \
20+
chmod +x cuda_installer && \
21+
./cuda_installer --silent --toolkit --override && \
22+
rm -f cuda_installer
23+
24+
######### Install OpenChat
25+
# Install OpenChat
26+
RUN pip3 install ninja packaging torch
27+
RUN pip3 install ochat
28+
29+
######### Install Cloudflared
30+
RUN wget -q --show-progress --progress=bar:force:noscroll -O /cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 && chmod +x /cloudflared
31+
32+
######### Startup script
33+
34+
COPY start.sh /start.sh
35+
ENTRYPOINT ["/start.sh"]

docker/serving/start.sh

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
3+
# start ssh server
4+
if [ -n "$PUBLIC_KEY" ]; then
5+
mkdir -p ~/.ssh
6+
echo "$PUBLIC_KEY" >> ~/.ssh/authorized_keys
7+
chmod 700 -R ~/.ssh
8+
9+
dpkg-reconfigure openssh-server # generate ssh keys
10+
service ssh start
11+
fi
12+
13+
# start cloudflare tunnel
14+
if [ -n "$CLOUDFLARED_TUNNEL_ARGS" ]; then
15+
/cloudflared $CLOUDFLARED_TUNNEL_ARGS &
16+
fi
17+
18+
# start openchat server
19+
python3 -m ochat.serving.openai_api_server --model $MODEL --host 127.0.0.1 --port 18888 --engine-use-ray --worker-use-ray --disable-log-requests --disable-log-stats $ARGS &
20+
21+
wait

0 commit comments

Comments
 (0)