Merge pull request #738 from jdblack/flexible_devbuild

Give arguments to docker/build-dev.sh
This commit is contained in:
SergeantPanda 2025-12-18 08:57:45 -06:00 committed by GitHub
commit a76a81c7f4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 64 additions and 9 deletions

View file

@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Removed unreachable code path in m3u output - Thanks [@DawtCom](https://github.com/DawtCom)
- Update docker/dev-build.sh to support private registries, multiple architectures and pushing. Now you can do things like `dev-build.sh -p -r my.private.registry -a linux/arm64,linux/amd64` - Thanks [@jdblack](https://github.com/jblack)
### Fixed

View file

@ -1,11 +1,65 @@
#!/bin/bash
docker build --build-arg BRANCH=dev -t dispatcharr/dispatcharr:dev -f Dockerfile ..
#!/bin/bash
set -e
# Default values
VERSION=$(python3 -c "import sys; sys.path.append('..'); import version; print(version.__version__)")
REGISTRY="dispatcharr" # Registry or private repo to push to
IMAGE="dispatcharr" # Image that we're building
BRANCH="dev"
ARCH="" # Architectures to build for, e.g. linux/amd64,linux/arm64
PUSH=false
usage() {
cat <<- EOF
To test locally:
./build-dev.sh
To build and push to registry:
./build-dev.sh -p
To build and push to a private registry:
./build-dev.sh -p -r myregistry:5000
To build for -both- x86_64 and arm_64:
./build-dev.sh -p -a linux/amd64,linux/arm64
Do it all:
./build-dev.sh -p -r myregistry:5000 -a linux/amd64,linux/arm64
EOF
exit 0
}
# Parse options
while getopts "pr:a:b:i:h" opt; do
case $opt in
r) REGISTRY="$OPTARG" ;;
a) ARCH="--platform $OPTARG" ;;
b) BRANCH="$OPTARG" ;;
i) IMAGE="$OPTARG" ;;
p) PUSH=true ;;
h) usage ;;
\?) echo "Invalid option: -$OPTARG" >&2; exit 1 ;;
esac
done
BUILD_ARGS="BRANCH=$BRANCH"
echo docker build --build-arg $BUILD_ARGS $ARCH -t $IMAGE
docker build -f Dockerfile --build-arg $BUILD_ARGS $ARCH -t $IMAGE ..
docker tag $IMAGE $IMAGE:$BRANCH
docker tag $IMAGE $IMAGE:$VERSION
if [ -z "$PUSH" ]; then
echo "Please run 'docker push -t $IMAGE:dev -t $IMAGE:${VERSION}' when ready"
else
for TAG in latest "$VERSION" "$BRANCH"; do
docker tag "$IMAGE" "$REGISTRY/$IMAGE:$TAG"
docker push -q "$REGISTRY/$IMAGE:$TAG"
done
echo "Images pushed successfully."
fi
# Get version information
VERSION=$(python -c "import sys; sys.path.append('..'); import version; print(version.__version__)")
# Build with version tag
docker build --build-arg BRANCH=dev \
-t dispatcharr/dispatcharr:dev \
-t dispatcharr/dispatcharr:${VERSION} \
-f Dockerfile ..