fix and finally ran

This commit is contained in:
iceBear67
2026-06-16 16:42:28 +08:00
parent 71f46fb430
commit bd3df67542
13 changed files with 859 additions and 77 deletions

View File

@@ -1,45 +1,48 @@
#!/bin/sh
#!/bin/bash
set -eo pipefail
hasunset=0
if [ "$UID" != "0" ]; then
echo "This script must be run in root."
exit 2
fi
PATH="$PWD/scripts:$PATH"
if [[ "$CLOUD_CONFIG_REPO" -eq "" ]]; then
echo "CLOUD_CONFIG_REPO is not set."
CLOUD_CONFIG_REPO="https://git.sfclub.cc/cloud/bearnet"
hasunset=1
fi
if [[ "$CLOUD_CONFIG_REVISION" -eq "" ]]; then
echo "CLOUD_CONFIG_REVISION is not set."
CLOUD_CONFIG_REVISION="wish"
hasunset=1
fi
if [[ "$CLOUD_GATEWAY_ADDRESS" -eq "" ]]; then
echo "CLOUD_GATEWAY_ADDRESS is not set."
CLOUD_GATEWAY_ADDRESS="10.0.0.119"
hasunset=1
fi
TMP_DIR=$(mktemp -d)
if [[ "$hasunset" -ne 0 ]]; then
echo ""
echo "Default values will be used for unset environments:"
echo ""
grep -E "^ENV" ./Dockerfile
set | grep -E "^CLOUD_"
fi
cleanup_() {
if [[ "$GPG_PRIVATE_KEY" -ne "" ]]; then
rm ./bot-gpg-key.asc
fi
rm -rf $TMP_DIR
}
trap cleanup_ INT TERM
if [[ "$GPG_PRIVATE_KEY" -ne "" ]]; then
echo "$GPG_PRIVATE_KEY" > ./bot-gpg-key.asc
elif [[ ! -f ./bot-gpg-key.asc ]]; then
echo "GPG key not found. Terminating.."
exit -1
fi
trap cleanup_ INT TERM EXIT
IMAGE_TAG=$(git rev-parse --short HEAD)
IMAGE_NAME=${IMAGE_NAME:-bearcloud}
@@ -49,5 +52,25 @@ echo "Additional arguments: $@"
echo "Continue?"
read
sudo docker build -t "$IMAGE_NAME:$IMAGE_TAG" -t "$IMAGE_NAME:latest" $@ .
rm -rf "$TMP_DIR"
cp -r ./image $TMP_DIR
sed -i "s#_REPO_#$CLOUD_CONFIG_REPO#g" $TMP_DIR/overlay/daemon/update-keys.sh && \
sed -i "s#_REVISION_#$CLOUD_CONFIG_REVISION#g" $TMP_DIR/overlay/daemon/update-keys.sh && \
sed -i "s#GATEWAY_ADDRESS#$CLOUD_GATEWAY_ADDRESS#g" $TMP_DIR/overlay/etc/dhcp/dhclient.conf
pushd $PWD >/dev/null
cd $TMP_DIR
export IMAGE_ARTIFACT="$PWD/vm.raw"
rm -f vm.raw && ./build-image.sh
if [ ! -f $IMAGE_ARTIFACT ]; then
exit 2
fi
popd > /dev/null
mv $IMAGE_ARTIFACT ./data/
IMAGE_ARTIFACT="$PWD/data/vm.raw"
docker build -t "$IMAGE_NAME:$IMAGE_TAG" -t "$IMAGE_NAME:latest" $@ .