add bubble setup
This commit is contained in:
64
BUILD.sh
64
BUILD.sh
@@ -29,8 +29,6 @@ if [[ "$CLOUD_GATEWAY_ADDRESS" -eq "" ]]; then
|
|||||||
hasunset=1
|
hasunset=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TMP_DIR=$(mktemp -d)
|
|
||||||
|
|
||||||
if [[ "$hasunset" -ne 0 ]]; then
|
if [[ "$hasunset" -ne 0 ]]; then
|
||||||
echo ""
|
echo ""
|
||||||
echo "Default values will be used for unset environments:"
|
echo "Default values will be used for unset environments:"
|
||||||
@@ -38,39 +36,55 @@ if [[ "$hasunset" -ne 0 ]]; then
|
|||||||
set | grep -E "^CLOUD_"
|
set | grep -E "^CLOUD_"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cleanup_() {
|
# TMP_DIR=$(mktemp -d)
|
||||||
rm -rf $TMP_DIR
|
# cleanup_() {
|
||||||
}
|
# rm -rf $TMP_DIR
|
||||||
|
# }
|
||||||
|
|
||||||
trap cleanup_ INT TERM EXIT
|
# trap cleanup_ INT TERM EXIT
|
||||||
|
|
||||||
IMAGE_TAG=$(git rev-parse --short HEAD)
|
IMAGE_TAG=$(git rev-parse --short HEAD)
|
||||||
IMAGE_NAME=${IMAGE_NAME:-bearcloud}
|
IMAGE_NAME=${IMAGE_NAME:-bearcloud}
|
||||||
|
|
||||||
echo "Image tag: $IMAGE_NAME:$IMAGE_TAG and $IMAGE_NAME:latest"
|
echo "Image tag: $IMAGE_NAME:$IMAGE_TAG and $IMAGE_NAME:latest"
|
||||||
echo "Additional arguments: $@"
|
echo "Additional arguments for VM image: $VM_OPTS"
|
||||||
|
echo "Additional arguments for Hypervisor Image: $HY_OPTS"
|
||||||
echo "Continue?"
|
echo "Continue?"
|
||||||
read
|
read
|
||||||
|
|
||||||
rm -rf "$TMP_DIR"
|
# rm -rf "$TMP_DIR"
|
||||||
cp -r ./image $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#_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#_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
|
# sed -i "s#GATEWAY_ADDRESS#$CLOUD_GATEWAY_ADDRESS#g" $TMP_DIR/overlay/etc/dhcp/dhclient.conf
|
||||||
|
|
||||||
pushd $PWD >/dev/null
|
# pushd $PWD >/dev/null
|
||||||
|
|
||||||
cd $TMP_DIR
|
# cd $TMP_DIR
|
||||||
export IMAGE_ARTIFACT="$PWD/vm.raw"
|
# export IMAGE_ARTIFACT="$PWD/vm.raw"
|
||||||
rm -f vm.raw && ./build-image.sh
|
# rm -f vm.raw && ./build-image.sh
|
||||||
if [ ! -f $IMAGE_ARTIFACT ]; then
|
# if [ ! -f $IMAGE_ARTIFACT ]; then
|
||||||
exit 2
|
# exit 2
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# popd > /dev/null
|
||||||
|
|
||||||
|
# mv $IMAGE_ARTIFACT ./data/
|
||||||
|
# IMAGE_ARTIFACT="$PWD/data/vm.raw"
|
||||||
|
|
||||||
|
BUILDERS=$(docker buildx ls)
|
||||||
|
if ! (echo $BUILDERS | grep -q "bearcloud"); then
|
||||||
|
docker buildx create --name bearcloud --buildkitd-flags '--allow-insecure-entitlement security.insecure'
|
||||||
fi
|
fi
|
||||||
|
echo "BUILDING VM DISK IMAGE"
|
||||||
|
docker build \
|
||||||
|
--builder bearcloud \
|
||||||
|
--allow security.insecure \
|
||||||
|
-f vm.Dockerfile \
|
||||||
|
--target export \
|
||||||
|
--output type=local,dest=./data \
|
||||||
|
$VM_OPTS .
|
||||||
|
|
||||||
popd > /dev/null
|
echo "BUILDING HYPERVISOR IMAGE"
|
||||||
|
docker build -t "$IMAGE_NAME:$IMAGE_TAG" -t "$IMAGE_NAME:latest" \
|
||||||
mv $IMAGE_ARTIFACT ./data/
|
-f hypervisor.Dockerfile $HY_OPTS .
|
||||||
IMAGE_ARTIFACT="$PWD/data/vm.raw"
|
|
||||||
|
|
||||||
docker build -t "$IMAGE_NAME:$IMAGE_TAG" -t "$IMAGE_NAME:latest" $@ .
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,3 @@ RUN apk update && apk add bash curl jq tini linux-virt && sh /setup.sh && rm /se
|
|||||||
COPY ./scripts/entrypoint.sh /entrypoint.sh
|
COPY ./scripts/entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
ENTRYPOINT ["/sbin/tini", "/entrypoint.sh"]
|
ENTRYPOINT ["/sbin/tini", "/entrypoint.sh"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/sbin/openrc-run
|
#!/sbin/openrc-run
|
||||||
command="/usr/bin/auth-server"
|
command="/bin/auth-server"
|
||||||
command_background=true
|
command_background=true
|
||||||
command_args="-addr 0.0.0.0:8080 -root /users"
|
command_args="-addr 0.0.0.0:8080 -root /users"
|
||||||
command_user="keeper"
|
command_user="keeper"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ depend() {
|
|||||||
need auth-server docker
|
need auth-server docker
|
||||||
}
|
}
|
||||||
|
|
||||||
command="/usr/bin/bubble"
|
command="/bin/bubble"
|
||||||
command_args="-config /daemon/config.yaml"
|
command_args="-config /daemon/config.yaml"
|
||||||
pidfile="/run/${RC_SVCNAME}.pid"
|
pidfile="/run/${RC_SVCNAME}.pid"
|
||||||
command_background=true
|
command_background=true
|
||||||
|
|||||||
31
vm.Dockerfile
Normal file
31
vm.Dockerfile
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
FROM golang:1.25-alpine AS bubble-builder
|
||||||
|
|
||||||
|
WORKDIR /src
|
||||||
|
RUN apk add git && git clone https://github.com/iceBear67/bubble && go mod download && mkdir /build
|
||||||
|
RUN CGO_ENABLED=0 go build -o /build/daemon . && \
|
||||||
|
CGO_ENABLED=0 go build -o /build/auth_server ./util/
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
ARG TARGETOS
|
||||||
|
ARG TARGETARCH
|
||||||
|
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH \
|
||||||
|
go build -o /build/daemon . && \
|
||||||
|
CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH \
|
||||||
|
go build -o /build/auth_server ./util/
|
||||||
|
|
||||||
|
FROM alpine:latest AS rootfs-builder
|
||||||
|
ENV CLOUD_CONFIG_REPO="https://git.sfclub.cc/cloud/bearnet"
|
||||||
|
ENV CLOUD_CONFIG_REVISION="wish"
|
||||||
|
ENV CLOUD_GATEWAY_ADDRESS="10.0.0.119"
|
||||||
|
RUN apk update && apk add alpine-make-vm-image
|
||||||
|
COPY ./image /kitchen
|
||||||
|
RUN sed -i "s#_REPO_#$CLOUD_CONFIG_REPO#g" /kitchen/overlay/daemon/update-keys.sh && \
|
||||||
|
sed -i "s#_REVISION_#$CLOUD_CONFIG_REVISION#g" /kitchen/overlay/daemon/update-keys.sh && \
|
||||||
|
sed -i "s#GATEWAY_ADDRESS#$CLOUD_GATEWAY_ADDRESS#g" /kitchen/overlay/etc/dhcp/dhclient.conf
|
||||||
|
COPY --from=bubble-builder /build/daemon /bin/bubble
|
||||||
|
COPY --from=bubble-builder /build/auth_server /bin/auth-server
|
||||||
|
RUN --security=insecure \
|
||||||
|
cd /kitchen && rm -f vm.raw && ./build-image.sh
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user