diff --git a/.gitattributes b/.gitattributes index c5e7318..6b8d874 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1 @@ -packages/reservation-platform/docker/myp-rp_latest.tar.xz filter=lfs diff=lfs merge=lfs -text +packages/reservation-platform/docker/images/*.tar.xz filter=lfs diff=lfs merge=lfs -text diff --git a/packages/reservation-platform/docker/build.sh b/packages/reservation-platform/docker/build.sh new file mode 100755 index 0000000..f730656 --- /dev/null +++ b/packages/reservation-platform/docker/build.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Define image name +MYP_RP_IMAGE_NAME="myp-rp" + +# Function to build Docker image +build_image() { + local image_name=$1 + local dockerfile=$2 + local platform=$3 + + echo "Building $image_name Docker image for $platform..." + + docker buildx build --platform $platform -t ${image_name}:latest -f $dockerfile . + if [ $? -eq 0 ]; then + echo "$image_name Docker image built successfully" + else + echo "Error occurred while building $image_name Docker image" + exit 1 + fi +} + +# Create and use a builder instance (if not already created) +BUILDER_NAME="myp-rp-arm64-builder" +docker buildx create --name $BUILDER_NAME --use || docker buildx use $BUILDER_NAME + +# Build myp-rp image +build_image "$MYP_RP_IMAGE_NAME" "$PWD/Dockerfile" "linux/arm64" + +# Remove the builder instance +docker buildx rm $BUILDER_NAME diff --git a/packages/reservation-platform/docker/build_image.sh b/packages/reservation-platform/docker/build_image.sh deleted file mode 100755 index fe771cb..0000000 --- a/packages/reservation-platform/docker/build_image.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash - -# Specify the image names and tags -MYP_RP_IMAGE_NAME="myp-rp" -MYP_RP_IMAGE_TAG="latest" -CADDY_IMAGE_NAME="caddy" -CADDY_IMAGE_TAG="latest" - -# Create a new builder instance with a sensible name -BUILDER_NAME="myp-rp-arm64-builder" -echo "Creating a new builder instance named $BUILDER_NAME..." -docker buildx create --name $BUILDER_NAME --use - -# Build the myp-rp Docker image from Dockerfile for arm64 -echo "Building myp-rp Docker image from Dockerfile for arm64..." -docker buildx build --platform linux/arm64 -t ${MYP_RP_IMAGE_NAME}:${MYP_RP_IMAGE_TAG} -f $PWD/Dockerfile $PWD --output type=docker,dest=docker/${MYP_RP_IMAGE_NAME}_${MYP_RP_IMAGE_TAG}.tar - -# Check if the build was successful -if [ $? -ne 0 ]; then - echo "Error occurred while building the myp-rp Docker image" - docker buildx rm $BUILDER_NAME - exit 1 -fi - -echo "myp-rp Docker image built successfully" - -# Compress the myp-rp tar file using xz -MYP_RP_COMPRESSED_FILE="docker/${MYP_RP_IMAGE_NAME}_${MYP_RP_IMAGE_TAG}.tar.xz" -echo "Compressing the myp-rp image to $MYP_RP_COMPRESSED_FILE..." - -# Check if the compressed file exists and remove it -if [ -f "$MYP_RP_COMPRESSED_FILE" ]; then - echo "Removing existing compressed file $MYP_RP_COMPRESSED_FILE..." - rm "$MYP_RP_COMPRESSED_FILE" -fi - -# Proceed with compression for myp-rp -xz -z docker/${MYP_RP_IMAGE_NAME}_${MYP_RP_IMAGE_TAG}.tar - -# Check if the compression was successful -if [ $? -ne 0 ]; then - echo "Error occurred while compressing the myp-rp Docker image" - docker buildx rm $BUILDER_NAME - exit 1 -fi - -echo "myp-rp Docker image compressed successfully as $MYP_RP_COMPRESSED_FILE" - -# Save the caddy Docker image -echo "Saving caddy Docker image..." -docker pull ${CADDY_IMAGE_NAME}:${CADDY_IMAGE_TAG} -docker save ${CADDY_IMAGE_NAME}:${CADDY_IMAGE_TAG} > docker/${CADDY_IMAGE_NAME}.tar - -# Compress the caddy tar file using xz -CADDY_COMPRESSED_FILE="docker/${CADDY_IMAGE_NAME}.tar.xz" -echo "Compressing the caddy image to $CADDY_COMPRESSED_FILE..." - -# Check if the compressed file exists and remove it -if [ -f "$CADDY_COMPRESSED_FILE" ]; then - echo "Removing existing compressed file $CADDY_COMPRESSED_FILE..." - rm "$CADDY_COMPRESSED_FILE" -fi - -# Proceed with compression for caddy -xz -z docker/${CADDY_IMAGE_NAME}.tar - -# Check if the compression was successful -if [ $? -ne 0 ]; then - echo "Error occurred while compressing the caddy Docker image" - docker buildx rm $BUILDER_NAME - exit 1 -fi - -echo "Caddy Docker image compressed successfully as $CADDY_COMPRESSED_FILE" - -# Remove the builder instance -docker buildx rm $BUILDER_NAME - -echo "Build process completed" \ No newline at end of file diff --git a/packages/reservation-platform/docker/caddy.tar.xz b/packages/reservation-platform/docker/caddy.tar.xz deleted file mode 100644 index 910cb83..0000000 Binary files a/packages/reservation-platform/docker/caddy.tar.xz and /dev/null differ diff --git a/packages/reservation-platform/docker/deploy.sh b/packages/reservation-platform/docker/deploy.sh new file mode 100755 index 0000000..09b73d6 --- /dev/null +++ b/packages/reservation-platform/docker/deploy.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# Directory containing the Docker images +IMAGE_DIR="docker/images" + +# Load all Docker images from the tar.xz files in the IMAGE_DIR +echo "Loading Docker images from $IMAGE_DIR..." + +for image_file in "$IMAGE_DIR"/*.tar.xz; do + if [ -f "$image_file" ]; then + echo "Loading Docker image from $image_file..." + docker load -i "$image_file" + + # Check if the image loading was successful + if [ $? -ne 0 ]; then + echo "Error occurred while loading Docker image from $image_file" + exit 1 + fi + else + echo "No Docker image tar.xz files found in $IMAGE_DIR." + fi +done + +# Execute docker compose +echo "Running docker compose..." +docker compose -f "docker/compose.yml" up -d + +# Check if the operation was successful +if [ $? -eq 0 ]; then + echo "Docker compose executed successfully" +else + echo "Error occurred while executing docker compose" + exit 1 +fi + +echo "Deployment completed successfully" diff --git a/packages/reservation-platform/docker/deploy_container.sh b/packages/reservation-platform/docker/deploy_container.sh deleted file mode 100755 index 0375056..0000000 --- a/packages/reservation-platform/docker/deploy_container.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -# Load the Docker images from the tar files -echo "Loading Docker images from tar files..." - -# Load myp-rp image -echo "Loading myp-rp image..." -docker load -i "docker/myp-rp_latest.tar.xz" - -# Check if loading the myp-rp image was successful -if [ $? -ne 0 ]; then - echo "Error occurred while loading myp-rp Docker image" - exit 1 -fi - -# Load caddy image -echo "Loading caddy image..." -docker load -i "docker/caddy.tar.xz" - -# Check if loading the caddy image was successful -if [ $? -ne 0 ]; then - echo "Error occurred while loading caddy Docker image" - exit 1 -fi - -# Execute docker compose -echo "Running docker compose..." -docker compose -f "docker/compose.yml" up -d - -# Check if the operation was successful -if [ $? -eq 0 ]; then - echo "Docker compose executed successfully" -else - echo "Error occurred while executing docker compose" - exit 1 -fi - -echo "Process completed successfully" diff --git a/packages/reservation-platform/docker/images/caddy_latest.tar.xz b/packages/reservation-platform/docker/images/caddy_latest.tar.xz new file mode 100644 index 0000000..714a63c --- /dev/null +++ b/packages/reservation-platform/docker/images/caddy_latest.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c908d6d0fc04a2aa8b0a19047f6930155bc0342a1ebf4d5cc72c20e9bb298ecf +size 13382768 diff --git a/packages/reservation-platform/docker/images/myp-rp_latest.tar.xz b/packages/reservation-platform/docker/images/myp-rp_latest.tar.xz new file mode 100644 index 0000000..c05c438 --- /dev/null +++ b/packages/reservation-platform/docker/images/myp-rp_latest.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e003b292a9a7ba353d6500235a648356bc100d91dd30ef4dd7807e7734dee33 +size 169643696 diff --git a/packages/reservation-platform/docker/myp-rp_latest.tar.xz b/packages/reservation-platform/docker/myp-rp_latest.tar.xz deleted file mode 100644 index 9599311..0000000 --- a/packages/reservation-platform/docker/myp-rp_latest.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7985863a22c64d2d186e78d60364153d6b9b6f72510d077b020afe78944f5f8f -size 284435728 diff --git a/packages/reservation-platform/docker/save.sh b/packages/reservation-platform/docker/save.sh new file mode 100755 index 0000000..6778602 --- /dev/null +++ b/packages/reservation-platform/docker/save.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +# Get image name and optional platform as arguments +IMAGE_NAME=$1 +PLATFORM="linux/arm64v8" # Fixed to linux/arm64v8 + +# Define paths +IMAGE_DIR="docker/images" +IMAGE_FILE="${IMAGE_DIR}/${IMAGE_NAME//[:\/]/_}.tar" +COMPRESSED_FILE="${IMAGE_FILE}.xz" + +# Pull the image if it is not available locally +if ! docker image inspect ${IMAGE_NAME} &>/dev/null; then + echo "Image $IMAGE_NAME not found locally. Pulling for platform $PLATFORM..." + docker pull --platform $PLATFORM ${IMAGE_NAME} + if [ $? -ne 0 ]; then + echo "Error occurred while pulling $IMAGE_NAME for platform $PLATFORM" + exit 1 + fi +else + echo "Image $IMAGE_NAME found locally. Skipping pull." +fi + +# Save the Docker image +echo "Saving $IMAGE_NAME Docker image..." +docker save ${IMAGE_NAME} > $IMAGE_FILE + +# Compress the Docker image (overwriting if file exists) +echo "Compressing $IMAGE_FILE..." +xz -z --force $IMAGE_FILE + +if [ $? -eq 0 ]; then + echo "$IMAGE_NAME Docker image saved and compressed successfully as $COMPRESSED_FILE" +else + echo "Error occurred while compressing $IMAGE_NAME Docker image" + exit 1 +fi