diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 00000000..a7501889 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,45 @@ +name: Publish Docker image + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + release: + types: [published] + pull_request: + branches: + - master + paths: + - 'Dockerfile' + - 'Cargo.toml' + - 'Cargo.lock' + - '.github/workflows/docker.yml' + +jobs: + push_to_registry: + name: Push Docker image to Docker Hub + runs-on: ubuntu-latest + steps: + - name: Check out the repo + uses: actions/checkout@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@v2 + with: + password: ${{ secrets.DOCKER_PASSWORD }} + username: ${{ secrets.DOCKER_USERNAME }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: sniffnet/sniffnet + flavor: latest=true + + - name: Build and push Docker image + uses: docker/build-push-action@v3 + with: + context: . + push: ${{ contains(fromJson('["push", "release"]'), github.event_name) }} # Publish to docker registry only on push event or new release. + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2b0ebcd5..d440594c 100644 --- a/.gitignore +++ b/.gitignore @@ -55,5 +55,4 @@ $RECYCLE.BIN/ *.lnk ### Custom... ### -Dockerfile lcov.info \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..c6b31f0e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM homebrew/ubuntu22.04 +RUN brew install sniffnet +RUN ["sniffnet"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..f4161458 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,9 @@ +services: + build-image: + build: . + network_mode: "host" + privileged: true + environment: + - DISPLAY + <<: &default + image: sniffnet \ No newline at end of file