From 806739f85b9bb4057a7a49fda8a3665d567d8edf Mon Sep 17 00:00:00 2001 From: philmcmahon Date: Thu, 3 Oct 2024 10:00:22 +0100 Subject: [PATCH] Prepare for building multiple containers --- ...-docker.yml => build-publish-containers.yml} | 17 +++++++++-------- containers/media-download.Dockerfile | 16 ++++++++++++++++ .../Dockerfile => containers/whisper.Dockerfile | 0 3 files changed, 25 insertions(+), 8 deletions(-) rename .github/workflows/{build-whisper-docker.yml => build-publish-containers.yml} (88%) create mode 100644 containers/media-download.Dockerfile rename whisper_container/Dockerfile => containers/whisper.Dockerfile (100%) diff --git a/.github/workflows/build-whisper-docker.yml b/.github/workflows/build-publish-containers.yml similarity index 88% rename from .github/workflows/build-whisper-docker.yml rename to .github/workflows/build-publish-containers.yml index a0d10adc..f9824c2d 100644 --- a/.github/workflows/build-whisper-docker.yml +++ b/.github/workflows/build-publish-containers.yml @@ -6,12 +6,13 @@ on: workflow_dispatch: push: paths: - - 'whisper_container/Dockerfile' - - '.github/workflows/build-whisper-docker.yml' + - '../../containers/*' + - '.github/workflows/build-publish-containers.yml' # Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds. env: IMAGE_NAME: ${{ github.repository }} + MEDIA_DOWNLOAD_IMAGE_NAME: ${{ github.repository }}_media-download BUILD_NUMBER: ${{ github.run_number }} GITHUB_REGISTRY: ghcr.io @@ -44,9 +45,6 @@ jobs: id: meta uses: docker/metadata-action@v5 with: - images: | - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }} - ${{ secrets.TRANSCRIPTION_SERVICE_ECR_URI }} tags: | type=sha type=raw,value=latest @@ -61,14 +59,17 @@ jobs: # This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages. # It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository. # It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step. - - name: Build and push Docker image + - name: Build and push whisper Docker image uses: docker/build-push-action@v5 with: - context: whisper_container/ + file: containers/whisper.Dockerfile # to add x86: linux/amd64 platforms: linux/arm64 push: true - tags: ${{ steps.meta.outputs.tags }} + tags: + - ${{ steps.meta.outputs.tags }} + - ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }} + - ${{ secrets.TRANSCRIPTION_SERVICE_ECR_URI }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max diff --git a/containers/media-download.Dockerfile b/containers/media-download.Dockerfile new file mode 100644 index 00000000..3893ca12 --- /dev/null +++ b/containers/media-download.Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.12-bookworm +WORKDIR /opt +LABEL com.theguardian.transcription-service.media-download-container="Media download container with yt-dlp, associated dependnencies and media download app" + +ARG node_version + +RUN pip install yt-dlp + +RUN apt-get update +RUN apt-get install -y ffmpeg git phantomjs ffprobe nodejs npm +RUN npm install -g n +RUN n $node_version + +COPY packages/media-download/dist/index.js /opt/media-download.js + +CMD node /opt/media-download.js diff --git a/whisper_container/Dockerfile b/containers/whisper.Dockerfile similarity index 100% rename from whisper_container/Dockerfile rename to containers/whisper.Dockerfile