diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..40d723d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.gitea/ +.vscode/ +logs/ +__pycache__/ +.env +.git/ diff --git a/.gitea/docker.build.yaml b/.gitea/docker.build.yaml new file mode 100644 index 0000000..0bb9df8 --- /dev/null +++ b/.gitea/docker.build.yaml @@ -0,0 +1,46 @@ +name: Build and Push Docker Image +run-name: ${{ gitea.actor }} is building and pushing a Docker Image + +on: + push: + branches: + - master + - staging + - dev + pull_request: + branches: + - master + - staging + - dev + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set Docker tag based on branch + id: tag + run: | + if [[ "${{ gitea.ref_name }}" == "master" ]]; then + TAG="latest" + elif [[ "${{ gitea.ref_name }}" == "staging" ]]; then + TAG="staging" + elif [[ "${{ gitea.ref_name }}" == "dev" ]]; then + TAG="dev" + fi + echo "TAG=$TAG" >> $GITHUB_ENV + + - name: Build Docker image + run: | + docker build -t pyrss-bot:${{ env.TAG }} . + + - name: Login to Docker registry + run: echo ${{ secrets.DOCKER_TOKEN }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin + + - name: Tag & Push Docker image + run: | + docker tag pyrss-bot:${{ env.TAG }} xordk/pyrss-bot:${{ env.TAG }} + docker push xordk/pyrss-bot:${{ env.TAG }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f1ec9c6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.11.4-slim-buster + +# python related environment variables +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 + +WORKDIR /app + +# install python dependencies +COPY requirements.txt /app/ +RUN pip install --upgrade pip +RUN pip install --no-cache-dir -r requirements.txt + +COPY . /app/ + +CMD ["python", "src/main.py"] \ No newline at end of file diff --git a/README.md b/README.md index 07e5819..1ec361f 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,6 @@ An RSS driven Discord bot written in Python. Provides user commands for storing RSS feed URLs that can be assigned to any given discord channel. -Content is shared every 10 minutes as an Embed. \ No newline at end of file +Content is shared every 10 minutes as an Embed. + +Depends on the web server app. \ No newline at end of file