diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml new file mode 100644 index 0000000..38dde76 --- /dev/null +++ b/.github/workflows/docker-publish.yml @@ -0,0 +1,73 @@ +name: Docker + +on: + workflow_dispatch: + inputs: + tagInput: + description: 'Tag' + required: true + + workflow_run: + workflows: ["Release Package to PyPI.org"] + branches: [main] + types: + - completed + +jobs: + build-and-push-image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GH_TOKEN }} + - name: Determine version tag + id: version-tag + run: | + INPUT_VALUE="${{ github.event.inputs.tagInput }}" + if [ -z "$INPUT_VALUE" ]; then + INPUT_VALUE="${{ github.ref_name }}" + fi + echo "::set-output name=value::$INPUT_VALUE" + - name: Build and push + uses: docker/build-push-action@v3 + with: + context: . + platforms: linux/amd64 + push: true + tags: | + ghcr.io/ieasybooks/tafrigh:latest + ghcr.io/ieasybooks/tafrigh:${{ steps.version-tag.outputs.value }} + - name: Build and push Wit image + uses: docker/build-push-action@v3 + with: + context: . + build-args: | + DEPS=wit + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ghcr.io/ieasybooks/tafrigh-wit:latest + ghcr.io/ieasybooks/tafrigh-wit:${{ steps.version-tag.outputs.value }} + - name: Build and push Whisper image + uses: docker/build-push-action@v3 + with: + context: . + build-args: | + DEPS=whisper + platforms: linux/amd64 + push: true + tags: | + ghcr.io/ieasybooks/tafrigh-whisper:latest + ghcr.io/ieasybooks/tafrigh-whisper:${{ steps.version-tag.outputs.value }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2712aa1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +# Use the official Python 3.11 Slim image as the base image +FROM python:3.11-slim + +# Set the working directory to /tafrigh +WORKDIR /tafrigh + +# Install system dependencies +RUN apt-get update && \ + apt-get install -y ffmpeg && \ + rm -rf /var/lib/apt/lists/* + +# Use build arguments to specify dependencies +ARG DEPS="wit,whisper" + +# Install tafrigh with the specified dependencies +RUN pip install tafrigh[$DEPS] + +# Set the entrypoint to run the installed binary in /tafrigh +# Example: docker run -it -v "$PWD:/tafrigh" tafrigh ... +ENTRYPOINT ["tafrigh"]