mirror of
https://github.com/Dispatcharr/Dispatcharr.git
synced 2026-01-23 02:35:14 +00:00
fix: stabilize build-dev paths and push behavior
This commit is contained in:
parent
19d25f37c6
commit
91d73a1fe8
1 changed files with 49 additions and 45 deletions
|
|
@ -1,65 +1,69 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Default values
|
# Default values
|
||||||
VERSION=$(python3 -c "import sys; sys.path.append('..'); import version; print(version.__version__)")
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
REGISTRY="dispatcharr" # Registry or private repo to push to
|
ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
||||||
IMAGE="dispatcharr" # Image that we're building
|
VERSION=$(python3 -c "import sys; sys.path.append('${ROOT_DIR}'); import version; print(version.__version__)")
|
||||||
BRANCH="dev"
|
REGISTRY="dispatcharr" # Registry or private repo to push to
|
||||||
ARCH="" # Architectures to build for, e.g. linux/amd64,linux/arm64
|
IMAGE="dispatcharr" # Image that we're building
|
||||||
|
BRANCH="dev"
|
||||||
|
ARCH="" # Architectures to build for, e.g. linux/amd64,linux/arm64
|
||||||
PUSH=false
|
PUSH=false
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
cat <<- EOF
|
cat <<-EOF
|
||||||
To test locally:
|
To test locally:
|
||||||
./build-dev.sh
|
./build-dev.sh
|
||||||
|
|
||||||
To build and push to registry:
|
To build and push to registry:
|
||||||
./build-dev.sh -p
|
./build-dev.sh -p
|
||||||
|
|
||||||
To build and push to a private registry:
|
To build and push to a private registry:
|
||||||
./build-dev.sh -p -r myregistry:5000
|
./build-dev.sh -p -r myregistry:5000
|
||||||
|
|
||||||
To build for -both- x86_64 and arm_64:
|
To build for -both- x86_64 and arm_64:
|
||||||
./build-dev.sh -p -a linux/amd64,linux/arm64
|
./build-dev.sh -p -a linux/amd64,linux/arm64
|
||||||
|
|
||||||
Do it all:
|
Do it all:
|
||||||
./build-dev.sh -p -r myregistry:5000 -a linux/amd64,linux/arm64
|
./build-dev.sh -p -r myregistry:5000 -a linux/amd64,linux/arm64
|
||||||
EOF
|
EOF
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# Parse options
|
# Parse options
|
||||||
while getopts "pr:a:b:i:h" opt; do
|
while getopts "pr:a:b:i:h" opt; do
|
||||||
case $opt in
|
case $opt in
|
||||||
r) REGISTRY="$OPTARG" ;;
|
r) REGISTRY="$OPTARG" ;;
|
||||||
a) ARCH="--platform $OPTARG" ;;
|
a) ARCH="$OPTARG" ;;
|
||||||
b) BRANCH="$OPTARG" ;;
|
b) BRANCH="$OPTARG" ;;
|
||||||
i) IMAGE="$OPTARG" ;;
|
i) IMAGE="$OPTARG" ;;
|
||||||
p) PUSH=true ;;
|
p) PUSH=true ;;
|
||||||
h) usage ;;
|
h) usage ;;
|
||||||
\?) echo "Invalid option: -$OPTARG" >&2; exit 1 ;;
|
\?)
|
||||||
esac
|
echo "Invalid option: -$OPTARG" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
BUILD_ARGS="BRANCH=$BRANCH"
|
BUILD_ARGS="BRANCH=$BRANCH"
|
||||||
|
ARCH_ARGS=()
|
||||||
echo docker build --build-arg $BUILD_ARGS $ARCH -t $IMAGE
|
if [ -n "$ARCH" ]; then
|
||||||
docker build -f Dockerfile --build-arg $BUILD_ARGS $ARCH -t $IMAGE ..
|
ARCH_ARGS=(--platform "$ARCH")
|
||||||
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
|
fi
|
||||||
|
|
||||||
|
echo docker build --build-arg "$BUILD_ARGS" "${ARCH_ARGS[@]}" -t "$IMAGE"
|
||||||
|
docker build -f "${SCRIPT_DIR}/Dockerfile" --build-arg "$BUILD_ARGS" "${ARCH_ARGS[@]}" -t "$IMAGE" "$ROOT_DIR"
|
||||||
|
docker tag "$IMAGE" "$IMAGE":"$BRANCH"
|
||||||
|
docker tag "$IMAGE" "$IMAGE":"$VERSION"
|
||||||
|
|
||||||
|
if [ "$PUSH" = "true" ]; then
|
||||||
|
for TAG in latest "$VERSION" "$BRANCH"; do
|
||||||
|
docker tag "$IMAGE" "$REGISTRY/$IMAGE:$TAG"
|
||||||
|
docker push -q "$REGISTRY/$IMAGE:$TAG"
|
||||||
|
done
|
||||||
|
echo "Images pushed successfully."
|
||||||
|
else
|
||||||
|
echo "Please run 'docker push $IMAGE:$BRANCH' and 'docker push $IMAGE:${VERSION}' when ready"
|
||||||
|
fi
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue