52 lines
1.4 KiB
Bash
52 lines
1.4 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
# --- Configuration ---
|
||
|
|
IMAGE_NAME="workit"
|
||
|
|
TAG="latest"
|
||
|
|
DEV_BUILD_DIR="public_dev"
|
||
|
|
|
||
|
|
# --- Script Start ---
|
||
|
|
echo "--- Preparing development build directory ---"
|
||
|
|
# Clean up previous development build directory if it exists
|
||
|
|
rm -rf ${DEV_BUILD_DIR}
|
||
|
|
# Create a temporary build directory for development
|
||
|
|
cp -r public ${DEV_BUILD_DIR}
|
||
|
|
|
||
|
|
# Step 1: Run the Node.js script to inline audio files.
|
||
|
|
echo ""
|
||
|
|
echo "--- Inlining audio files ---"
|
||
|
|
node scripts/inline-audio.js
|
||
|
|
|
||
|
|
# Check if the node script was successful.
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
echo "!!! Audio inlining failed. Aborting development build."
|
||
|
|
rm -rf ${DEV_BUILD_DIR} # Clean up
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "--- Starting Docker image build for development ---"
|
||
|
|
|
||
|
|
# Step 2: Build the image for current architecture (not hardcoded to amd64)
|
||
|
|
# This will automatically detect the current platform for local development
|
||
|
|
docker build -t ${IMAGE_NAME}:${TAG} .
|
||
|
|
|
||
|
|
# Check if the build command was successful.
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
echo "!!! Docker build failed. Aborting script."
|
||
|
|
rm -rf ${DEV_BUILD_DIR} # Clean up
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Step 3: Clean up the temporary development build directory
|
||
|
|
echo ""
|
||
|
|
echo "--- Cleaning up development build directory ---"
|
||
|
|
rm -rf ${DEV_BUILD_DIR}
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "✅ Development build complete!"
|
||
|
|
echo "To run the container:"
|
||
|
|
echo " docker run -p 8080:80 ${IMAGE_NAME}:${TAG}"
|
||
|
|
echo ""
|
||
|
|
echo "Or with docker-compose:"
|
||
|
|
echo " docker-compose up"
|