diff --git a/Makefile b/Makefile index c03bc35..a697b52 100644 --- a/Makefile +++ b/Makefile @@ -63,10 +63,7 @@ push-docker: docker image push $(DOCKER_REPO)/$(DOCKER_NAME):latest css: - docker build -t mscom-css-compile -f css_compress.dockerfile . - rm "www/data/css/styles.css" "www/data/css/styles.min.css" || true - docker run --rm -v "$(shell pwd)/www:/project/www" "mscom-css-compile" - docker image rm mscom-css-compile + ./data/css_compress/run.sh clean: rm -rf ".run-data" diff --git a/css_compress.dockerfile b/css_compress.dockerfile index 1bf6e81..27b62fa 100644 --- a/css_compress.dockerfile +++ b/css_compress.dockerfile @@ -6,6 +6,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && apt-get clean && rm -rf /var/lib/apt/lists/* COPY ./data /project/data +COPY ./www/data/css /project/www/data/css +RUN chown -R 1000:1000 /project/www WORKDIR /project/data/css_compress diff --git a/data/css_compress/run.sh b/data/css_compress/run.sh new file mode 100755 index 0000000..aa8ec9c --- /dev/null +++ b/data/css_compress/run.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)" + +UUID=$(cat /proc/sys/kernel/random/uuid) +CONTAINER_NAME="mscom-css-run-${UUID}" +IMAGE_NAME="mscom-css-compile-${UUID}" + +cleanup() { + docker rm "$CONTAINER_NAME" 2>/dev/null || true + docker image rm "$IMAGE_NAME" 2>/dev/null || true +} +trap cleanup EXIT + +docker build -t "$IMAGE_NAME" -f "$PROJECT_DIR/css_compress.dockerfile" "$PROJECT_DIR" + +rm -f "$PROJECT_DIR/www/data/css/styles.css" "$PROJECT_DIR/www/data/css/styles.min.css" + +docker create --name "$CONTAINER_NAME" --stop-timeout 60 "$IMAGE_NAME" +timeout 60 docker start -a "$CONTAINER_NAME" + +docker cp "$CONTAINER_NAME:/project/www/data/css/styles.css" "$PROJECT_DIR/www/data/css/styles.css" +docker cp "$CONTAINER_NAME:/project/www/data/css/styles.min.css" "$PROJECT_DIR/www/data/css/styles.min.css"