diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..9d49840 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,26 @@ +# This workflow will build a Node project with Docker + +name: build and push docker image + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build-node: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - uses: mr-smithers-excellent/docker-build-push@v5 + name: Build & push Docker image + with: + image: edward8e/multi-downloader-nx + tags: v1, latest + registry: docker.io + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7507f9e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,38 @@ +FROM node AS builder +WORKDIR "/app" +COPY . . + +# Install 7z for packaging + +RUN apt-get update +RUN apt-get install p7zip-full -y + +# Update bin-path for docker/linux + +RUN echo 'ffmpeg: "./bin/ffmpeg/ffmpeg"\nmkvmerge: "./bin/mkvtoolnix/mkvmerge"' > /app/config/bin-path.yml + +#Build AniDL + +RUN npm i +RUN npm run tsc false +RUN npm run build-ubuntu-cli + +# Move build to new Clean Image + +FROM node +WORKDIR "/app" +COPY --from=builder /app/lib/_builds/multi-downloader-nx-ubuntu64-cli ./ + +# Install mkvmerge and ffmpeg + +RUN mkdir -p /app/bin/mkvtoolnix +RUN mkdir -p /app/bin/ffmpeg + +RUN apt-get update +RUN apt-get install mkvtoolnix -y +RUN apt-get install ffmpeg -y + +RUN mv /usr/bin/mkvmerge /app/bin/mkvtoolnix/mkvmerge +RUN mv /usr/bin/ffmpeg /app/bin/ffmpeg/ffmpeg + +ENTRYPOINT ["tail", "-f", "/dev/null"] \ No newline at end of file