diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 457649a2..7d383f3f 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -14,6 +14,9 @@ jobs: strategy: matrix: arch: ["amd64"] + base: + - "nvcr.io/nvidia/pytorch:22.03-py3" # GPU enabled + - "ubuntu:20.04" # CPU only steps: - uses: actions/checkout@v2 - name: Log in to the Container registry @@ -28,6 +31,11 @@ jobs: set -ex base="ghcr.io/coqui-ai/tts" tags="" # PR build + + if [[ ${{ matrix.base }} = "ubuntu:20.04" ]]; then + base="ghcr.io/coqui-ai/tts-cpu" + fi + if [[ "${{ startsWith(github.ref, 'refs/heads/') }}" = "true" ]]; then # Push to branch github_ref="${{ github.ref }}" @@ -53,4 +61,5 @@ jobs: context: . platforms: linux/${{ matrix.arch }} push: ${{ github.event_name == 'push' }} + build-args: "BASE=${{ matrix.base }}" tags: ${{ steps.compute-tag.outputs.tags }} diff --git a/Dockerfile b/Dockerfile index 8dab3b30..e8050a05 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,18 @@ -FROM nvcr.io/nvidia/pytorch:22.03-py3 -RUN apt-get update && apt-get install -y --no-install-recommends espeak && rm -rf /var/lib/apt/lists/* +ARG BASE=nvcr.io/nvidia/pytorch:22.03-py3 +FROM ${BASE} +RUN apt-get update && apt-get install -y --no-install-recommends python3 python3-pip python3-venv python3-wheel espeak libsndfile1-dev && rm -rf /var/lib/apt/lists/* + +# Create and activate virtual env +ENV VIRTUAL_ENV=/venv +RUN python3 -m venv $VIRTUAL_ENV +ENV PATH="$VIRTUAL_ENV/bin:$PATH" +RUN pip install -U pip setuptools wheel + WORKDIR /root COPY requirements.txt /root COPY requirements.dev.txt /root COPY requirements.notebooks.txt /root -RUN pip install -r <(cat requirements.txt requirements.dev.txt requirements.notebooks.txt) +RUN ["/bin/bash", "-c", "pip install -r <(cat requirements.txt requirements.dev.txt requirements.notebooks.txt)"] COPY . /root RUN make install ENTRYPOINT ["tts"]