From 4f1016299a9f174a9033074a06a9c7977dbd3bab Mon Sep 17 00:00:00 2001 From: Fabio Tranchitella Date: Fri, 21 Oct 2022 12:00:04 +0200 Subject: [PATCH 1/2] chore: add work/ to gitignore Changelog: None Ticket: MEN-5943 Signed-off-by: Fabio Tranchitella --- work/.gitignore | 1 + work/.gitkeep | 0 2 files changed, 1 insertion(+) create mode 100644 work/.gitignore delete mode 100644 work/.gitkeep diff --git a/work/.gitignore b/work/.gitignore new file mode 100644 index 0000000..72e8ffc --- /dev/null +++ b/work/.gitignore @@ -0,0 +1 @@ +* diff --git a/work/.gitkeep b/work/.gitkeep deleted file mode 100644 index e69de29..0000000 From 46282ce3254d142d3451dbb2830dbb5762d9d2d4 Mon Sep 17 00:00:00 2001 From: Fabio Tranchitella Date: Fri, 21 Oct 2022 12:06:52 +0200 Subject: [PATCH 2/2] feat(docker-mender-convert): use a Docker volume as work area Changelog: Title Ticket: MEN-5943 Signed-off-by: Fabio Tranchitella --- Dockerfile | 2 ++ README.md | 5 +++++ docker-mender-convert | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/Dockerfile b/Dockerfile index abd7bd2..23200db 100644 --- a/Dockerfile +++ b/Dockerfile @@ -75,8 +75,10 @@ RUN mkdir -p /mender-convert/input RUN mkdir -p /mender-convert/deploy RUN mkdir -p /mender-convert/logs +VOLUME ["/mender-convert/configs"] VOLUME ["/mender-convert/input"] VOLUME ["/mender-convert/deploy"] VOLUME ["/mender-convert/logs"] +VOLUME ["/mender-convert/work"] ENTRYPOINT ["/mender-convert/docker-entrypoint.sh"] diff --git a/README.md b/README.md index 1e734fd..a489d79 100644 --- a/README.md +++ b/README.md @@ -165,6 +165,11 @@ MENDER_ARTIFACT_NAME=release-1 ./docker-mender-convert \ --overlay rootfs_overlay_demo/ ``` +The container will use the `work/` directory as a temporary area to unpack and +customize the image's content. You can customize the work directory path +by setting the `WORK_DIRECTORY` env variable. To reduce the time required to +perform the conversion, you can use tempfs or ramfs mount points. + Conversion will take 10-30 minutes, depending on image size and resources available. You can watch `log/convert.log.XXXXX` for progress and diagnostics information. The exact log file path is printed before the conversion starts. diff --git a/docker-mender-convert b/docker-mender-convert index 1196553..a175523 100755 --- a/docker-mender-convert +++ b/docker-mender-convert @@ -24,9 +24,11 @@ if [ -z "$IMAGE_NAME" -a -z "$GIT_PROVIDED_TAG_NAME" ]; then fi IMAGE_NAME=${IMAGE_NAME:-"mendersoftware/mender-convert${GIT_PROVIDED_TAG_NAME:+:$GIT_PROVIDED_TAG_NAME}"} +CONFIGS_DIRECTORY=${CONFIGS_DIRECTORY:-"$(pwd)/configs"} DEPLOY_DIRECTORY=${DEPLOY_DIRECTORY:-"$(pwd)/deploy"} INPUT_DIRECTORY=${INPUT_DIRECTORY:-"$(pwd)/input"} LOGS_DIRECTORY=${LOGS_DIRECTORY:-"$(pwd)/logs"} +WORK_DIRECTORY=${WORK_DIRECTORY:-"$(pwd)/work"} mkdir -p "$DEPLOY_DIRECTORY" mkdir -p "$LOGS_DIRECTORY" @@ -39,9 +41,11 @@ echo "using log file at: ${LOGS_DIRECTORY}/${LOG_FILE}" set +e docker run \ --rm \ + -v "$CONFIGS_DIRECTORY":/mender-convert/configs \ -v "$INPUT_DIRECTORY":/mender-convert/input \ -v "$LOGS_DIRECTORY":/mender-convert/logs \ -v "$DEPLOY_DIRECTORY":/mender-convert/deploy \ + -v "$WORK_DIRECTORY":/mender-convert/work \ --privileged=true \ --cap-add=SYS_MODULE \ -v /dev:/dev \