From b6be19db20e7fcc4b20b4a31398fe35a8b4d29f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eystein=20M=C3=A5l=C3=B8y=20Stenberg?= Date: Wed, 28 Nov 2018 13:07:37 -0800 Subject: [PATCH] Support passing arguments directly to script that runs mender-convert container. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changelog: Support passing mender-convert arguments to docker-mender-convert directly Signed-off-by: Eystein Måløy Stenberg --- docker/README.md | 40 +++++++++++++++--------------------- docker/docker-mender-convert | 4 ++-- 2 files changed, 18 insertions(+), 26 deletions(-) diff --git a/docker/README.md b/docker/README.md index 1071a34..4002566 100644 --- a/docker/README.md +++ b/docker/README.md @@ -7,7 +7,7 @@ and their version and name vary between Linux distributions. To make using mender-convert easier, a reference setup using a Ubuntu 18.04 Docker container is provided. -You need to [install Docker Engine CE](https://docs.docker.com/install) to use this environment. +You need to [install Docker Engine](https://docs.docker.com/install) to use this environment. ## Build the mender-convert container image @@ -18,7 +18,7 @@ copy this directory to your workstation and change the current directory to it. Then run ```bash -./build.sh +./docker-build ``` This will create a container image you can use to run mender-convert. @@ -26,52 +26,44 @@ This will create a container image you can use to run mender-convert. ## Use the mender-convert container image -Create a directory `input` under the directory where you copied these files (`build.sh`, `run.sh`, etc.): +Create a directory `input` under the directory where you copied these files (`docker-build`, `docker-mender-convert`, etc.): ```bash mkdir input ``` -Put your raw disk image into `input`, e.g. `input/2018-10-09-raspbian-stretch.img`. -Then put a Mender client binary compiled for your device into `input/mender-1.6.0-arm-linux-gnueabihf-gcc`. -See [the Mender documentation on how to cross-compile the Mender client for your device](https://docs.mender.io/development/client-configuration/cross-compiling). - -After you have built or pulled the mender-convert container image, -you can run it with +Then put your raw disk image into `input`, e.g. ```bash -./run.sh +mv ~/Downloads/2018-11-13-raspbian-stretch.img input/2018-11-13-raspbian-stretch.img ``` -This will drop you into a shell environment (interactive mode). -Change to the mender-convert directory: +You can run mender-convert from inside the container with your desired options, e.g. -```bash -cd /mender-convert -``` - -You can now run mender-convert with your desired options, e.g. ```bash DEVICE_TYPE="raspberrypi3" -RAW_DISK_IMAGE="input/2018-10-09-raspbian-stretch.img" -MENDER_CLIENT="input/mender-1.6.0-arm-linux-gnueabihf-gcc" +RAW_DISK_IMAGE="input/2018-11-13-raspbian-stretch.img" -ARTIFACT_NAME="2018-10-09-raspbian-stretch" -MENDER_DISK_IMAGE="2018-10-09-raspbian-stretch.sdimg" +ARTIFACT_NAME="2018-11-13-raspbian-stretch" +MENDER_DISK_IMAGE="2018-11-13-raspbian-stretch.sdimg" TENANT_TOKEN="" -./mender-convert from-raw-disk-image \ +./docker-mender-convert from-raw-disk-image \ --raw-disk-image $RAW_DISK_IMAGE \ --mender-disk-image $MENDER_DISK_IMAGE \ --device-type $DEVICE_TYPE \ - --mender-client $MENDER_CLIENT \ + --mender-client /mender \ --artifact-name $ARTIFACT_NAME \ --bootloader-toolchain arm-linux-gnueabihf \ --server-url "https://hosted.mender.io" \ --tenant-token $TENANT_TOKEN ``` +Note that the default Mender client is the latest stable and cross-compiled for generic ARM boards, +which should work well in most cases. If you would like to use a different Mender client, +place it in `inputs` and adjust the `--mender-client` argument. + Conversion will take 10-15 minutes, depending on your storage and resources available. You can watch `output/build.log` for progress and diagnostics information. @@ -79,4 +71,4 @@ After it finishes, you can find your images in the `output` directory on your ho ## Known issues -* BeagleBone images might not convert properly using this docker envirnoment due to permission issues: `mount: /mender-convert/output/embedded/rootfs: WARNING: device write-protected, mounted read-only.` \ No newline at end of file +* BeagleBone images might not convert properly using this docker envirnoment due to permission issues: `mount: /mender-convert/output/embedded/rootfs: WARNING: device write-protected, mounted read-only.` diff --git a/docker/docker-mender-convert b/docker/docker-mender-convert index a823dbc..5691b28 100755 --- a/docker/docker-mender-convert +++ b/docker/docker-mender-convert @@ -9,8 +9,8 @@ OUTPUT_DIR="$(pwd)/output" mkdir -p $OUTPUT_DIR -docker run -it \ +docker run \ --mount type=bind,source=$INPUT_DIR,target=/mender-convert/input,readonly \ --mount type=bind,source=$OUTPUT_DIR,target=/mender-convert/output \ --privileged=true \ - $IMAGE_NAME + $IMAGE_NAME "$@"