Add Dockerfile & build/push task (#316)

* add dockerfile and actions task to build image

* test on branch

* change to push only on release, update readme

* remove pip install requirements

* change to on release github action
This commit is contained in:
Nathan Thorpe
2022-05-05 18:06:38 -07:00
committed by GitHub
parent bfd1aa8172
commit abf07125c4
4 changed files with 74 additions and 0 deletions

5
.dockerignore Normal file
View File

@@ -0,0 +1,5 @@
venv/
dist/
build/
test/
parsedmarc.egg-info/

52
.github/workflows/docker.yml vendored Normal file
View File

@@ -0,0 +1,52 @@
name: Build docker image
on:
release:
types:
- published
push:
branches:
- master
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
# generate Docker tags based on the following events/attributes
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: .
push: ${{ github.event_name == 'release' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

9
Dockerfile Normal file
View File

@@ -0,0 +1,9 @@
FROM python:3.9-slim
WORKDIR /app
COPY parsedmarc/ parsedmarc/
COPY README.rst setup.py ./
RUN python setup.py install
ENTRYPOINT ["parsedmarc"]

View File

@@ -313,6 +313,14 @@ The full set of configuration options are:
after you have manually moved known samples you want to save to that after you have manually moved known samples you want to save to that
folder (e.g. malicious samples and non-sensitive legitimate samples). folder (e.g. malicious samples and non-sensitive legitimate samples).
Docker usage
============
.. code-block:: bash
docker run -v "${PWD}/config.ini:/config.ini" ghcr.io/domainaware/parsedmarc:<version> -c /config.ini
Sample aggregate report output Sample aggregate report output
============================== ==============================