diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..bbeff06 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +/LICENSE +/README.md +/rssingle.png +/Dockerfile +/config.yml diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml new file mode 100644 index 0000000..73ff0e6 --- /dev/null +++ b/.github/workflows/container.yml @@ -0,0 +1,44 @@ +name: Container image builder for RSS single + +on: + workflow_run: + workflows: ["CI workflow for RSSingle"] + types: [completed] + branches: [master] + +jobs: + build-and-push-container-image: + name: Build and push container image to Docker Hub and GHCR.io + if: ${{ github.event.workflow_run.conclusion == 'success' }} + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v2 + + - name: Build container image + id: build + uses: redhat-actions/buildah-build@v2 + with: + image: tanrax/rssingle + tags: latest + containerfiles: Dockerfile + + - name: Push container image to Docker Hub + uses: redhat-actions/push-to-registry@v2 + with: + image: ${{ steps.build.outputs.image }} + tags: ${{ steps.build.outputs.tags }} + registry: docker.io + username: tanrax + password: ${{ secrets.DOCKER_TOKEN }} + + - name: Push container image to GHCR.io + uses: redhat-actions/push-to-registry@v2 + with: + image: ${{ steps.build.outputs.image }} + tags: ${{ steps.build.outputs.tags }} + registry: ghcr.io + username: tanrax + password: ${{ secrets.GITHUB_TOKEN }} + + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..230fb73 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM docker.io/python:3.8-buster AS base + +FROM base AS build + +WORKDIR /work + +COPY . . + +RUN pip3 install pyinstaller + +RUN pip3 install -r /work/requirements.txt +RUN pyinstaller --onefile /work/rssingle.py + +FROM docker.io/python:3.8-buster AS app + +COPY --from=build /work/dist/rssingle /rssingle + +ENTRYPOINT ["/rssingle"]