Compare commits
	
		
			No commits in common. "main" and "tool_auto-editor" have entirely different histories.
		
	
	
		
			main
			...
			tool_auto-
		
	
		
							
								
								
									
										39
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								README.md
									
									
									
									
									
								
							@ -11,14 +11,13 @@ Collection of Dockerfiles created to build & pack various tools.
 | 
			
		||||
- [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 `scripts/build.sh` with the path to the tool you want to build.
 | 
			
		||||
Run the build-script `script/build.sh` with the path to the tool you want to build.
 | 
			
		||||
 | 
			
		||||
<br>
 | 
			
		||||
 | 
			
		||||
@ -30,16 +29,11 @@ You can add more tags or change the existing tag-naming-scheme using the environ
 | 
			
		||||
 | 
			
		||||
## 1.1. CLI
 | 
			
		||||
 | 
			
		||||
`scripts/build.sh <toolPath> [extra-args for docker build ..]`
 | 
			
		||||
`script/build.sh <toolPath> [extra-args for docker build ..]`
 | 
			
		||||
 | 
			
		||||
<br>
 | 
			
		||||
 | 
			
		||||
### 1.1.1. Example
 | 
			
		||||
`scripts/build.sh tools/bandwhich/`
 | 
			
		||||
 | 
			
		||||
<br>
 | 
			
		||||
 | 
			
		||||
### 1.1.2. Environment-Variables
 | 
			
		||||
### 1.1.1. Environment-Variables
 | 
			
		||||
 | 
			
		||||
Variable    | Description                       | Default
 | 
			
		||||
-|-|-
 | 
			
		||||
@ -62,17 +56,9 @@ https://github.com/imsnif/bandwhich
 | 
			
		||||
 | 
			
		||||
### 2.1.2. Example
 | 
			
		||||
```
 | 
			
		||||
docker run --rm -v /proc:/proc ghcr.io/ruakij/dockerbuilds/bandwhich:latest -n -i eth0
 | 
			
		||||
docker run -it --net host bandwhich -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
 | 
			
		||||
@ -94,20 +80,3 @@ docker run -v /home/ruakij/Videos:/video auto-build --no-open --silent-speed 8 -
 | 
			
		||||
 | 
			
		||||
### 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
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -14,6 +14,7 @@ ORIGINALDIR=$PWD
 | 
			
		||||
# Get args without path
 | 
			
		||||
EXTRA_ARGS="${@:2}"
 | 
			
		||||
 | 
			
		||||
TAG=${TAG:-"${TAG_PREFIX}${NAME}"}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Call prepare
 | 
			
		||||
 | 
			
		||||
@ -2,7 +2,8 @@
 | 
			
		||||
PLATFORM=${PLATFORM:-"linux/amd64,linux/arm64/v8,linux/arm/v7"}
 | 
			
		||||
 | 
			
		||||
docker buildx build \
 | 
			
		||||
    --platform $PLATFORM \
 | 
			
		||||
    $TAGS_ARG \
 | 
			
		||||
    $EXTRA_ARGS \
 | 
			
		||||
    $WORKDIR
 | 
			
		||||
--platform $PLATFORM \
 | 
			
		||||
--tag $TAG:latest \
 | 
			
		||||
--tag "${TAG}:${VERSION}" \
 | 
			
		||||
$EXTRA_ARGS \
 | 
			
		||||
$WORKDIR
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
docker build \
 | 
			
		||||
    $TAGS_ARG \
 | 
			
		||||
    $EXTRA_ARGS \
 | 
			
		||||
    "$WORKDIR"
 | 
			
		||||
--tag $TAG:latest \
 | 
			
		||||
--tag $TAG:$VERSION \
 | 
			
		||||
$EXTRA_ARGS \
 | 
			
		||||
"$WORKDIR"
 | 
			
		||||
 | 
			
		||||
@ -24,56 +24,32 @@ 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 ---
 | 
			
		||||
# 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
 | 
			
		||||
# Get current version to build
 | 
			
		||||
VERSION=$(git describe --tags --long)
 | 
			
		||||
if [ $? -ne 0 ]; then
 | 
			
		||||
    VERSION=$(git rev-parse HEAD)
 | 
			
		||||
fi
 | 
			
		||||
export VERSION
 | 
			
		||||
printf "Version: ${VERSION}\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
 | 
			
		||||
TAG=${TAG:-"${TAG_PREFIX}${NAME}"}
 | 
			
		||||
printf "> ${TAG}\n"
 | 
			
		||||
 | 
			
		||||
@ -1,15 +1,17 @@
 | 
			
		||||
# ---- Base ----
 | 
			
		||||
FROM debian:stable-slim AS base
 | 
			
		||||
FROM alpine:3 AS base
 | 
			
		||||
WORKDIR /app
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# ---- Build ----
 | 
			
		||||
FROM rust:1.79.0-slim AS build
 | 
			
		||||
FROM rust:1.65.0-slim AS build
 | 
			
		||||
WORKDIR /build
 | 
			
		||||
# Install packages
 | 
			
		||||
RUN apt update && apt install -y make
 | 
			
		||||
# Copy sources
 | 
			
		||||
ADD .build/repository/ .
 | 
			
		||||
# Compile
 | 
			
		||||
RUN cargo build --release
 | 
			
		||||
# Update dependencies and Compile
 | 
			
		||||
RUN cargo update && TARGET="release" make
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# ---- Release ----
 | 
			
		||||
 | 
			
		||||
@ -1,32 +0,0 @@
 | 
			
		||||
# ---- 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 +0,0 @@
 | 
			
		||||
GIT_REPOSITORY=https://github.com/matrix-org/rust-synapse-compress-state
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user