Compare commits
32 Commits
62ee2fe065
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| d405b2dd28 | |||
| a74f81c399 | |||
| 9c7f2ebfbc | |||
| 8c067f59ff | |||
| 76bf7c7498 | |||
| b079a26969 | |||
| c2a6c66dad | |||
| 5f13192006 | |||
| a3739784b5 | |||
| b5c5ed1b12 | |||
| 8304f68e4e | |||
| 5b7dbe1157 | |||
| a760df23a7 | |||
| c99e9b07c2 | |||
| b0a6f904c9 | |||
| 5b42ac9288 | |||
| 36aa46c486 | |||
| 4c06fe989a | |||
| 0837928200 | |||
| 2c1756228f | |||
| 2baaf6f6fd | |||
| 9cca8016c4 | |||
| 9960842516 | |||
| a62258447b | |||
| 3ea86679d0 | |||
| 64113e9514 | |||
| a5ef65e47f | |||
| d6b3f93d72 | |||
| 4a0bc41f9b | |||
| fc6eb11849 | |||
| 72b0ef8b11 | |||
| 3aeac81cf4 |
62
README.md
62
README.md
@@ -10,13 +10,15 @@ Collection of Dockerfiles created to build & pack various tools.
|
||||
- [1.1. CLI](#11-cli)
|
||||
- [2. Tools](#2-tools)
|
||||
- [2.1. Bandwhich](#21-bandwhich)
|
||||
- [2.2. auto-editor](#22-auto-editor)
|
||||
- [2.3. synapse-compress-state](#23-synapse-compress-state)
|
||||
<!-- /TOC -->
|
||||
|
||||
<br>
|
||||
|
||||
# 1. How to use
|
||||
|
||||
Run the build-script `script/build.sh` with the path to the tool you want to build.
|
||||
Run the build-script `scripts/build.sh` with the path to the tool you want to build.
|
||||
|
||||
<br>
|
||||
|
||||
@@ -28,11 +30,16 @@ You can add more tags or change the existing tag-naming-scheme using the environ
|
||||
|
||||
## 1.1. CLI
|
||||
|
||||
`script/build.sh <toolPath> [extra-args for docker build ..]`
|
||||
`scripts/build.sh <toolPath> [extra-args for docker build ..]`
|
||||
|
||||
<br>
|
||||
|
||||
### 1.1.1. Environment-Variables
|
||||
### 1.1.1. Example
|
||||
`scripts/build.sh tools/bandwhich/`
|
||||
|
||||
<br>
|
||||
|
||||
### 1.1.2. Environment-Variables
|
||||
|
||||
Variable | Description | Default
|
||||
-|-|-
|
||||
@@ -55,5 +62,52 @@ https://github.com/imsnif/bandwhich
|
||||
|
||||
### 2.1.2. Example
|
||||
```
|
||||
docker run -it --net host bandwhich -i eth0
|
||||
docker run --rm -v /proc:/proc ghcr.io/ruakij/dockerbuilds/bandwhich:latest -n -i eth0
|
||||
```
|
||||
|
||||
|||
|
||||
-|-
|
||||
`--rm` * | Removes the container when its stopped
|
||||
`-v /proc:/proc` * | Makes Process identification from host-processes possible
|
||||
`-n` * | Dont resolve IPs
|
||||
`-i eth0` * | Only check on eth0 interface
|
||||
|
||||
*\* is Optional*
|
||||
<br>
|
||||
|
||||
## 2.2. auto-editor
|
||||
|
||||
### 2.2.1. Source
|
||||
>Auto-Editor is a command line application for automatically editing video and audio by analyzing a variety of methods, most notably audio loudness.
|
||||
|
||||
https://github.com/WyattBlue/auto-editor
|
||||
|
||||
<br>
|
||||
|
||||
### 2.2.2. Example
|
||||
Speed-up silent part of videos:
|
||||
```
|
||||
docker run -v /home/ruakij/Videos:/video auto-build --no-open --silent-speed 8 --margin 0.2sec "input.webm" -o edited.mp4
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### 2.2.3. Comment
|
||||
TODO: Unfortunately the tool requires ffmpeg which is a huge tool and blows up the size of the image. I have to find a way to use a minimized version of it.
|
||||
|
||||
<br>
|
||||
|
||||
## 2.3. synapse-compress-state
|
||||
Includes synapse_auto_compressor
|
||||
|
||||
### 2.3.1. Source
|
||||
>This workspace contains experimental tools that attempt to reduce the number of rows in the state_groups_state table inside of a Synapse Postgresql database.
|
||||
|
||||
https://github.com/matrix-org/rust-synapse-compress-state
|
||||
|
||||
<br>
|
||||
|
||||
### 2.3.2. Example
|
||||
```
|
||||
docker run --net container:synapse ghcr.io/ruakij/dockerbuilds/synapse-compress-state:latest synapse_auto_compressor -p postgresql://synapse:synapse@127.0.0.1/synapse -c 500 -n 100
|
||||
```
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
|
||||
scriptPath_file=$(dirname "${BASH_SOURCE[0]}")
|
||||
scriptPath_folder=$(realpath "${scriptPath_file}")
|
||||
@@ -14,7 +14,6 @@ ORIGINALDIR=$PWD
|
||||
# Get args without path
|
||||
EXTRA_ARGS="${@:2}"
|
||||
|
||||
TAG=${TAG:-"${TAG_PREFIX}${NAME}"}
|
||||
|
||||
|
||||
# Call prepare
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
PLATFORM=${PLATFORM:-"linux/amd64,linux/arm64/v8,linux/arm/v7"}
|
||||
|
||||
docker buildx build \
|
||||
--platform $PLATFORM \
|
||||
--tag $TAG:latest \
|
||||
--tag "${TAG}:${VERSION}" \
|
||||
$EXTRA_ARGS \
|
||||
$WORKDIR
|
||||
--platform $PLATFORM \
|
||||
$TAGS_ARG \
|
||||
$EXTRA_ARGS \
|
||||
$WORKDIR
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker build \
|
||||
--tag $TAG:latest \
|
||||
--tag $TAG:$VERSION \
|
||||
$EXTRA_ARGS \
|
||||
"$WORKDIR"
|
||||
$TAGS_ARG \
|
||||
$EXTRA_ARGS \
|
||||
"$WORKDIR"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
|
||||
# --- VARIABLES ---
|
||||
# Load variables
|
||||
@@ -16,7 +16,7 @@ repositoryFolder="$WORKDIR/.build/repository"
|
||||
# --- SOURCES ---
|
||||
# Get sources locally
|
||||
if ! [ -d "$repositoryFolder" ]; then
|
||||
git clone "${GIT_REPOSITORY}" .
|
||||
git clone "${GIT_REPOSITORY}" "$repositoryFolder"
|
||||
cloned=True
|
||||
fi
|
||||
|
||||
@@ -24,32 +24,56 @@ fi
|
||||
cd "$repositoryFolder"
|
||||
|
||||
if [ "$cloned" != True ]; then
|
||||
# Checkout default-branch in case GIT_CHECKOUT was different
|
||||
# Checkout default-branch in case GIT_CHECKOUT was different
|
||||
defaultBranch=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')
|
||||
git checkout "${defaultBranch}"
|
||||
git checkout "${defaultBranch}"
|
||||
|
||||
git pull # Get changes
|
||||
git pull # Get changes
|
||||
fi
|
||||
|
||||
# Checkout when set
|
||||
if [ "$GIT_CHECKOUT" != "" ]; then
|
||||
# Handle special directives
|
||||
if [ "$GIT_CHECKOUT" = "latest-tag" ]; then
|
||||
GIT_CHECKOUT=$(git describe --tags `git rev-list --tags --max-count=1`) # Get latest tag
|
||||
GIT_CHECKOUT=$(git describe --tags $(git rev-list --tags --max-count=1)) # Get latest tag
|
||||
fi
|
||||
|
||||
git checkout $GIT_CHECKOUT
|
||||
fi
|
||||
|
||||
|
||||
# --- VERSION ---
|
||||
# Get current version to build
|
||||
VERSION=$(git describe --tags --long)
|
||||
if [ $? -ne 0 ]; then
|
||||
VERSION=$(git rev-parse HEAD)
|
||||
# When not set
|
||||
if [ "$GIT_CHECKOUT" == "" ]; then
|
||||
# Get current version to build
|
||||
VERSION=$(git describe --tags --long)
|
||||
if [ $? -ne 0 ]; then
|
||||
VERSION=$(git rev-parse HEAD)
|
||||
fi
|
||||
export VERSION
|
||||
fi
|
||||
export VERSION
|
||||
printf "Version: ${VERSION}\n"
|
||||
|
||||
TAG=${TAG:-"${TAG_PREFIX}${NAME}"}
|
||||
printf "> ${TAG}\n"
|
||||
# --- TAGS ---
|
||||
IFS='-.' read -ra ADDR <<<"$VERSION"
|
||||
|
||||
TAG_VERS=("latest")
|
||||
currentTag="${ADDR[0]}"
|
||||
TAG_VERS+=("$currentTag")
|
||||
|
||||
for i in $(seq 1 $((${#ADDR[@]} - 1))); do
|
||||
delimiter="."
|
||||
if [[ $VERSION == *"${currentTag}-${ADDR[$i]}"* ]]; then
|
||||
delimiter="-"
|
||||
fi
|
||||
|
||||
currentTag="${currentTag}${delimiter}${ADDR[$i]}"
|
||||
TAG_VERS+=("$currentTag")
|
||||
done
|
||||
|
||||
# Generate TAG_VERS_ARG
|
||||
printf "TAG_VERS:\n"
|
||||
for tag_ver in "${TAG_VERS[@]}"; do
|
||||
TAG="${TAGPREFIX}${NAME}:${tag_ver}"
|
||||
TAGS_ARG="$TAGS_ARG --tag $TAG"
|
||||
echo "- $TAG"
|
||||
done
|
||||
|
||||
24
tools/auto-editor/Dockerfile
Normal file
24
tools/auto-editor/Dockerfile
Normal file
@@ -0,0 +1,24 @@
|
||||
# ---- Base ----
|
||||
FROM python:slim AS base
|
||||
#ENV PYTHONDONTWRITEBYTECODE=1
|
||||
WORKDIR /app
|
||||
# Install packages
|
||||
RUN apt update && apt install -y ffmpeg && rm -rf /var/lib/apt/lists/*
|
||||
#RUN pip install --no-compile --no-cache-dir ae-ffmpeg
|
||||
#COPY .build/repository/ae-ffmpeg/ae_ffmpeg/Darwin-x86_64/* /usr/bin/
|
||||
|
||||
# ---- Build ----
|
||||
FROM base AS build
|
||||
ENV PYTHONDONTWRITEBYTECODE=1
|
||||
# Copy sources
|
||||
ADD .build/repository/auto_editor auto_editor
|
||||
ADD .build/repository/setup.py .
|
||||
ADD .build/repository/README.md .
|
||||
# Run install
|
||||
RUN pip install --no-compile --no-cache-dir -e .
|
||||
|
||||
# ---- Release ----
|
||||
FROM build AS release
|
||||
WORKDIR /videos
|
||||
|
||||
ENTRYPOINT ["auto-editor"]
|
||||
2
tools/auto-editor/info.env
Normal file
2
tools/auto-editor/info.env
Normal file
@@ -0,0 +1,2 @@
|
||||
GIT_REPOSITORY=https://github.com/WyattBlue/auto-editor
|
||||
TAG=latest-tag
|
||||
@@ -1,17 +1,15 @@
|
||||
# ---- Base ----
|
||||
FROM alpine:3 AS base
|
||||
FROM debian:stable-slim AS base
|
||||
WORKDIR /app
|
||||
|
||||
|
||||
# ---- Build ----
|
||||
FROM rust:alpine AS build
|
||||
FROM rust:1.79.0-slim AS build
|
||||
WORKDIR /build
|
||||
# Install packages
|
||||
RUN apk add --no-cache make libc-dev build-base
|
||||
# Copy sources
|
||||
ADD .build/repository/ .
|
||||
# Update dependencies and Compile
|
||||
RUN cargo update && TARGET="release" make
|
||||
# Compile
|
||||
RUN cargo build --release
|
||||
|
||||
|
||||
# ---- Release ----
|
||||
|
||||
32
tools/synapse-compress-state/Dockerfile
Normal file
32
tools/synapse-compress-state/Dockerfile
Normal file
@@ -0,0 +1,32 @@
|
||||
# ---- Base ----
|
||||
FROM alpine AS base
|
||||
WORKDIR /app
|
||||
# Install dependencies
|
||||
RUN apk add --no-cache libgcc libssl1.1 libc6-compat
|
||||
|
||||
# ---- Build ----
|
||||
FROM rust:alpine3.16 AS build
|
||||
WORKDIR /build
|
||||
# Install packages
|
||||
RUN apk add python3 musl-dev pkgconfig openssl-dev make
|
||||
# Set build-flags
|
||||
ENV RUSTFLAGS="-C target-feature=-crt-static"
|
||||
# Copy sources
|
||||
ADD .build/repository/ .
|
||||
|
||||
FROM build AS build-synapse_compress-state
|
||||
# Update dependencies and Compile
|
||||
RUN cargo update && cargo build --release
|
||||
|
||||
FROM build AS build-synapse_auto_compressor
|
||||
# Update dependencies and Compile
|
||||
RUN cd synapse_auto_compressor/ && cargo update && cargo build --release
|
||||
|
||||
|
||||
# ---- Release ----
|
||||
FROM base AS release
|
||||
## Copy build-target
|
||||
COPY --from=build-synapse_compress-state /build/target/release/synapse_compress_state .
|
||||
COPY --from=build-synapse_auto_compressor /build/target/release/synapse_auto_compressor .
|
||||
|
||||
ENTRYPOINT ["./synapse_auto_compressor"]
|
||||
1
tools/synapse-compress-state/info.env
Normal file
1
tools/synapse-compress-state/info.env
Normal file
@@ -0,0 +1 @@
|
||||
GIT_REPOSITORY=https://github.com/matrix-org/rust-synapse-compress-state
|
||||
Reference in New Issue
Block a user