Skip to content

Commit

Permalink
feat: docker container
Browse files Browse the repository at this point in the history
  • Loading branch information
domcyrus committed Feb 22, 2025
1 parent 2496bb8 commit 8f6e37c
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 2 deletions.
12 changes: 12 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/target
.git
.gitignore
.github
*.md
Dockerfile
.dockerignore
LICENSE-APACHE
LICENSE-MIT
*.sh
.editorconfig
.gitattributes
24 changes: 24 additions & 0 deletions .github/workflows/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -322,3 +322,27 @@ jobs:
name: msi-${{ matrix.arch }}
path: artifacts/
if-no-files-found: error
docker:
name: Docker Build
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
with:
push: true
tags: |
ghcr.io/${{ github.repository }}:latest
ghcr.io/${{ github.repository }}:${{ github.sha }}
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,5 @@ $RECYCLE.BIN/
*.lnk

### Custom... ###
Dockerfile
lcov.info
*.pcap
*.pcap
49 changes: 49 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
FROM rust:1.85-slim AS builder

# Install sniffnet build dependencies
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libexpat1-dev \
libpcap-dev \
libasound2-dev \
libfontconfig1-dev \
libgtk-3-dev \
pkg-config \
&& rm -rf /var/lib/apt/lists/*

# Create a new empty shell project
WORKDIR /usr/src/sniffnet
COPY . .

# Build for release
RUN cargo build --release

# Runtime stage
FROM debian:bookworm-slim

# Install runtime dependencies including Wayland
RUN apt-get update && apt-get install -y \
libfreetype6 \
libexpat1 \
libpcap0.8 \
libasound2 \
libfontconfig1 \
libgtk-3-0 \
libwayland-client0 \
libwayland-cursor0 \
libwayland-egl1 \
libxkbcommon0 \
mesa-utils \
libegl1 \
libvulkan1 \
&& rm -rf /var/lib/apt/lists/*

# Copy the built binary
COPY --from=builder /usr/src/sniffnet/target/release/sniffnet /usr/local/bin/sniffnet

# Set environment variables for Wayland
ENV GDK_BACKEND=wayland
ENV WAYLAND_DISPLAY=$WAYLAND_DISPLAY
ENV XDG_RUNTIME_DIR=/tmp

ENTRYPOINT ["sniffnet"]

0 comments on commit 8f6e37c

Please sign in to comment.