pat/web/make.bash

34 lines
1.1 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
set -e
cd "$(dirname "$0")"
# Build the Docker image
echo "Building web assets with Docker..."
docker build -q -t pat-web-builder .
# Create named volumes for caching
docker volume create pat-web-node-modules >/dev/null 2>&1 || true
docker volume create pat-web-nvm-cache >/dev/null 2>&1 || true
# Run the container with volume mounts for caching and bind mount for source
if [[ "$1" == "dev" ]]; then
echo "Starting dev server on port 8081..."
docker run --rm -it \
-v "$(pwd):/app" \
-v pat-web-node-modules:/app/node_modules \
-v pat-web-nvm-cache:/home/node/.nvm \
-w /app \
-p 8081:8081 \
pat-web-builder \
"nvm install && nvm use && npm install && npx webpack-dev-server --mode=development --port=8081 --host 0.0.0.0"
else
echo "Running npm build..."
docker run --rm \
-v "$(pwd):/app" \
-v pat-web-node-modules:/app/node_modules \
-v pat-web-nvm-cache:/home/node/.nvm \
-w /app \
pat-web-builder \
"nvm install && nvm use && npm ci && npm run production"
fi