Merge branch 'main' into tool_bandwhich
This commit is contained in:
		
						commit
						5f13192006
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | .build/ | ||||||
							
								
								
									
										88
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										88
									
								
								README.md
									
									
									
									
									
								
							| @ -6,24 +6,100 @@ Collection of Dockerfiles created to build & pack various tools. | |||||||
| <br> | <br> | ||||||
| 
 | 
 | ||||||
| <!-- TOC --> | <!-- TOC --> | ||||||
| - [1. Tools](#1-tools) | - [1. How to use](#1-how-to-use) | ||||||
|     - [1.1. Bandwhich](#11-bandwhich) |     - [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 --> | <!-- /TOC --> | ||||||
| 
 | 
 | ||||||
| <br> | <br> | ||||||
| 
 | 
 | ||||||
| # 1. Tools | # 1. How to use | ||||||
| 
 | 
 | ||||||
| ## 1.1. Bandwhich | Run the build-script `scripts/build.sh` with the path to the tool you want to build. | ||||||
| 
 | 
 | ||||||
| ### 1.1.1. Source | <br> | ||||||
|  | 
 | ||||||
|  | The docker-image will be tagged with `default` and the detected version/commit-hash. | ||||||
|  | 
 | ||||||
|  | You can add more tags or change the existing tag-naming-scheme using the environment-variable `TAG`. | ||||||
|  | 
 | ||||||
|  | <br> | ||||||
|  | 
 | ||||||
|  | ## 1.1. CLI | ||||||
|  | 
 | ||||||
|  | `scripts/build.sh <toolPath> [extra-args for docker build ..]` | ||||||
|  | 
 | ||||||
|  | <br> | ||||||
|  | 
 | ||||||
|  | ### 1.1.1. Example | ||||||
|  | `scripts/build.sh tools/bandwhich/` | ||||||
|  | 
 | ||||||
|  | <br> | ||||||
|  | 
 | ||||||
|  | ### 1.1.2. Environment-Variables | ||||||
|  | 
 | ||||||
|  | Variable    | Description                       | Default | ||||||
|  | -|-|- | ||||||
|  | `TAG`       | Tag for Docker-building           | `TAGPREFIX` + `NAME` | ||||||
|  | `TAGPREFIX` | Set a prefix to the default-tag   | - | ||||||
|  | `NAME`      | Change the name used in the tag   | *FolderName* | ||||||
|  | 
 | ||||||
|  | <br> | ||||||
|  | 
 | ||||||
|  | # 2. Tools | ||||||
|  | 
 | ||||||
|  | ## 2.1. Bandwhich | ||||||
|  | 
 | ||||||
|  | ### 2.1.1. Source | ||||||
| >This is a CLI utility for displaying current network utilization by process, connection and remote IP/hostname | >This is a CLI utility for displaying current network utilization by process, connection and remote IP/hostname | ||||||
| 
 | 
 | ||||||
| https://github.com/imsnif/bandwhich | https://github.com/imsnif/bandwhich | ||||||
| 
 | 
 | ||||||
| <br> | <br> | ||||||
| 
 | 
 | ||||||
| ### 1.1.2. Example | ### 2.1.2. Example | ||||||
| ``` | ``` | ||||||
| docker run -it --net host bandwhich -i eth0 | docker run -it --net host bandwhich -i eth0 | ||||||
| ``` | ``` | ||||||
|  | 
 | ||||||
|  | <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,9 +1,21 @@ | |||||||
| #!/bin/sh | #!/bin/bash | ||||||
| 
 | 
 | ||||||
| scriptPath_file=$(dirname "${BASH_SOURCE[0]}") | scriptPath_file=$(dirname "${BASH_SOURCE[0]}") | ||||||
| scriptPath_folder=$(realpath "${scriptPath_file}") | scriptPath_folder=$(realpath "${scriptPath_file}") | ||||||
| utils_path="${scriptPath_folder}/utils" | utils_path="${scriptPath_folder}/utils" | ||||||
| 
 | 
 | ||||||
|  | WORKDIR=${1:-$PWD} | ||||||
|  | WORKDIR=$(realpath "$WORKDIR") | ||||||
|  | 
 | ||||||
|  | # -- VARIABLES -- | ||||||
|  | # Store original path | ||||||
|  | ORIGINALDIR=$PWD | ||||||
|  | 
 | ||||||
|  | # Get args without path | ||||||
|  | EXTRA_ARGS="${@:2}" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| # Call prepare | # Call prepare | ||||||
| printf "# PREPARE\n" | printf "# PREPARE\n" | ||||||
| source ${utils_path}/prepare.sh | source ${utils_path}/prepare.sh | ||||||
| @ -12,3 +24,7 @@ source ${utils_path}/prepare.sh | |||||||
| printf "# BUILD\n" | printf "# BUILD\n" | ||||||
| build_type=${BUILD:-"ownarch"} | build_type=${BUILD:-"ownarch"} | ||||||
| source ${utils_path}/build-${build_type}.sh | source ${utils_path}/build-${build_type}.sh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Switch back to original path | ||||||
|  | cd $ORIGINALDIR | ||||||
|  | |||||||
| @ -1,10 +1,9 @@ | |||||||
| #!/bin/bash | #!/bin/bash | ||||||
| TAG=${TAG:-"${TAG_PREFIX}${NAME}"} |  | ||||||
| PLATFORM=${PLATFORM:-"linux/amd64,linux/arm64/v8,linux/arm/v7"} | PLATFORM=${PLATFORM:-"linux/amd64,linux/arm64/v8,linux/arm/v7"} | ||||||
| EXTRA_ARGS=${EXTRA_ARGS:-"$@"} |  | ||||||
| 
 | 
 | ||||||
| docker buildx build \ | docker buildx build \ | ||||||
| --platform $PLATFORM \ | --platform $PLATFORM \ | ||||||
|  | --tag $TAG:latest \ | ||||||
| --tag "${TAG}:${VERSION}" \ | --tag "${TAG}:${VERSION}" \ | ||||||
| $EXTRA_ARGS \ | $EXTRA_ARGS \ | ||||||
| . | $WORKDIR | ||||||
|  | |||||||
| @ -1,8 +1,7 @@ | |||||||
| #!/bin/bash | #!/bin/bash | ||||||
| TAG=${TAG:-"${TAG_PREFIX}${NAME}"} |  | ||||||
| EXTRA_ARGS=${EXTRA_ARGS:-"$@"} |  | ||||||
| 
 | 
 | ||||||
| docker build \ | docker build \ | ||||||
|  | --tag $TAG:latest \ | ||||||
| --tag $TAG:$VERSION \ | --tag $TAG:$VERSION \ | ||||||
| $EXTRA_ARGS \ | $EXTRA_ARGS \ | ||||||
| . | "$WORKDIR" | ||||||
|  | |||||||
| @ -1,24 +1,33 @@ | |||||||
| #!/bin/sh | #!/bin/bash | ||||||
| 
 | 
 | ||||||
| # --- VARIABLES --- | # --- VARIABLES --- | ||||||
| # Load variables | # Load variables | ||||||
| source $PWD/info.env | source $WORKDIR/info.env | ||||||
| 
 | 
 | ||||||
| # Check if certain vars are overwritten, set them if missing | # Check if certain vars are overwritten, set them if missing | ||||||
| if [ "${NAME}" = "" ]; then | if [ "${NAME}" = "" ]; then | ||||||
|     NAME="$(basename $PWD)" |     NAME="$(basename $WORKDIR)" | ||||||
| fi | fi | ||||||
| export NAME | export NAME | ||||||
| printf "Name: ${NAME}\n" | printf "Name: ${NAME}\n" | ||||||
| 
 | 
 | ||||||
|  | repositoryFolder="$WORKDIR/.build/repository" | ||||||
| 
 | 
 | ||||||
| # --- SOURCES --- | # --- SOURCES --- | ||||||
| alias git="git -C .build/repository" |  | ||||||
| # Get sources locally | # Get sources locally | ||||||
| if ! [ -d .build/repository ]; then | if ! [ -d "$repositoryFolder" ]; then | ||||||
|     git clone "${GIT_REPOSITORY}" .build/repository |     git clone "${GIT_REPOSITORY}" "$repositoryFolder" | ||||||
| else |     cloned=True | ||||||
|     git checkout -  # Checkout previous branch in case GIT_CHECKOUT was different | fi | ||||||
|  | 
 | ||||||
|  | # Change into repository | ||||||
|  | cd "$repositoryFolder" | ||||||
|  | 
 | ||||||
|  | if [ "$cloned" != True ]; then | ||||||
|  |     # 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 pull        # Get changes |     git pull        # Get changes | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| @ -42,5 +51,5 @@ fi | |||||||
| export VERSION | export VERSION | ||||||
| printf "Version: ${VERSION}\n" | printf "Version: ${VERSION}\n" | ||||||
| 
 | 
 | ||||||
| TAG=${TAG:-"${TAG_PREFIX}${NAME}"} | TAG=${TAG:-"${TAGPREFIX}${NAME}"} | ||||||
| printf "> ${TAG}\n" | printf "> ${TAG}\n" | ||||||
|  | |||||||
							
								
								
									
										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 | ||||||
							
								
								
									
										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_compress_state"] | ||||||
							
								
								
									
										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 | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user