Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker Support #78

Open
wants to merge 29 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
0ca02a3
Create Dockerfile
simeononsecurity Apr 4, 2022
91886fe
Create Docker Documentation
simeononsecurity Apr 4, 2022
7762b77
Corrected Docker Instructions
simeononsecurity Apr 4, 2022
5f1081b
Create docker-image.yml
simeononsecurity Apr 5, 2022
254ec61
Update docker-image.yml
simeononsecurity Apr 5, 2022
670bace
Update docker-image.yml
simeononsecurity Apr 5, 2022
7dee1dd
Update Dockerfile
simeononsecurity Apr 5, 2022
0cca37b
Create dockersetup.sh
simeononsecurity Apr 5, 2022
ad991d3
Update Dockerfile
simeononsecurity Apr 5, 2022
84a576d
Update Docker Run Instructions
simeononsecurity Apr 5, 2022
88d0fe1
Update Dockerfile
simeononsecurity Apr 5, 2022
aa5c635
Update Dockerfile
simeononsecurity Apr 5, 2022
fea397a
Add udp to docker
simeononsecurity Apr 5, 2022
47dbcf4
Update Dockerfile
simeononsecurity Apr 8, 2022
9c39dcb
Update samplicator.service
simeononsecurity Apr 8, 2022
5ff93a2
Update samplicator.service
simeononsecurity Apr 8, 2022
842d31d
Update samplicator.service
simeononsecurity Apr 8, 2022
6e37e42
Update Dockerfile
simeononsecurity Apr 8, 2022
1195f4d
Update Dockerfile
simeononsecurity Apr 8, 2022
7860d3b
Update INSTALL.md
simeononsecurity Apr 8, 2022
fdc7236
Update INSTALL.md
simeononsecurity Apr 9, 2022
0fdd37a
Delete dockersetup.sh
simeononsecurity Apr 9, 2022
aafb096
Update Dockerfile
simeononsecurity Apr 13, 2022
fc266e8
Docker arm/arm64 support
simeononsecurity Apr 13, 2022
c141e23
Update docker-image.yml
simeononsecurity Apr 29, 2022
a5e767c
Create auto-update-from-base-docker.yml
simeononsecurity Jun 27, 2022
ea8bd47
Implement Labels
simeononsecurity Jul 6, 2022
d8eb063
Update docker-image.yml
simeononsecurity Jul 6, 2022
18c272a
Update Dockerfile
simeononsecurity Oct 1, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions .github/workflows/auto-update-from-base-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Docker Base Auto Update CI

on:
schedule:
- cron: "23 13 3 * *"


jobs:

build:

runs-on: ubuntu-latest
env:
DOCKER_PLATFORMS: linux/amd64,linux/armhf,linux/arm64


steps:
-
name: Docker Image Update Checker
id: baseupdatecheck
uses: lucacome/docker-image-update-checker@v1
with:
base-image: library/ubuntu:latest
image: simeononsecurity/samplicator:latest
-
name: Checkout
uses: actions/checkout@v3
if: steps.check.outputs.needs-updating == 'true'
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
if: steps.check.outputs.needs-updating == 'true'
-
name: setup docker buildx
uses: docker/setup-buildx-action@v1
id: buildx
with:
install: true
if: steps.check.outputs.needs-updating == 'true'
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
if: steps.check.outputs.needs-updating == 'true'
-
name: Build the Docker image
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes && docker buildx build --platform linux/amd64,linux/armhf,linux/arm64 -t simeononsecurity/samplicator:latest --progress=plain --push .
if: steps.check.outputs.needs-updating == 'true'
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: simeononsecurity/samplicator:latest
if: steps.check.outputs.needs-updating == 'true'
56 changes: 56 additions & 0 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Docker Image CI

on:
push:
branches: [ master ]


jobs:

build:

runs-on: ubuntu-latest
env:
DOCKER_PLATFORMS: linux/amd64,linux/armhf,linux/arm64


steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: setup docker buildx
uses: docker/setup-buildx-action@v1
id: buildx
with:
install: true
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
-
name: Build the Docker image
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes && docker buildx build --platform linux/amd64,linux/armhf,linux/arm64 -t simeononsecurity/samplicator:latest --progress=plain --push .
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: simeononsecurity/samplicator:latest

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

- name: Build the simeononsecurity/samplicator:latest Docker image for Github Registry
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes && docker buildx build --platform linux/amd64,linux/armhf,linux/arm64 -t ghcr.io/simeononsecurity/samplicator:latest --progress=plain --push .

38 changes: 38 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#https://github.com/sleinen/samplicator
FROM ubuntu:latest

LABEL org.opencontainers.image.source="https://github.com/simeononsecurity/samplicator"
LABEL org.opencontainers.image.description="Send copies of (UDP) datagrams to multiple receivers, with optional sampling and spoofing"
LABEL org.opencontainers.image.authors="simeononsecurity"

ENV DEBIAN_FRONTEND noninteractive
ENV container docker

# Specify Samplicator Environment Variables
#ENV samplicator_port=1700
#ENV samplicator_arguments='192.168.1.1/1700'

# Open Samplicator Listening Ports
#EXPOSE ${samplicator_port}:${samplicator_port}/udp

# Update Packages
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils && apt-get -y -f -m --show-progress --no-install-recommends full-upgrade

# Install Supporting Software
RUN apt-get install -y --no-install-recommends git cmake make htop wget systemctl gcc curl gpg automake autogen

# Install Samplicator
RUN git clone https://github.com/simeononsecurity/samplicator.git
RUN cd ./samplicator && bash ./autogen.sh
RUN cd /samplicator && ./configure
RUN cd /samplicator && make
RUN cd /samplicator && make install

#RUN cd /samplicator/ && chmod +x ./dockersetup.sh
#RUN cd /samplicator/ && cat ./dockersetup.sh
#CMD ["/bin/bash", "/samplicator/dockersetup.sh"]

# Clean APT
RUN apt-get clean && rm -rf /var/lib/apt/lists/*

ENTRYPOINT ["samplicate"]
10 changes: 10 additions & 0 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,13 @@ Then install and start the new service. On my CentOS 7.2, it looks like this:
cp samplicator.service /etc/systemd/system/samplicator.service
systemctl daemon-reload
systemctl start samplicator.service

Run Samplicator in Docker
--------------------------
Example:
```bash
docker run \
--net='bridge' \
-p '1700:1700'/udp \
--name samplicator -td sleinen/samplicator -S 192.168.1.10 -x 10 -p 1700 192.168.1.11/1700 192.168.1.12/1700
```
2 changes: 1 addition & 1 deletion samplicator.service
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ After=network.target

[Service]
Type=forking
ExecStart=/opt/samplicator/bin/samplicate -S -c /opt/samplicator/etc/samplicator.conf -p 162 -d 0 -f
ExecStart=/usr/local/bin/samplicate -p ${samplicator_port} ${samplicator_arguments}

[Install]
WantedBy=multi-user.target