how about: generate the cgz file in container
Reply-To:
In-Reply-To: <20201126012754.3857939-3-18509160991(a)163.com>
On Thu, Nov 26, 2020 at 09:27:52AM +0800, Wang Chenglong wrote:
>Install packages, set rootfs, pack images package and
>other actions in docker.
>
>Signed-off-by: Wang Chenglong <18509160991(a)163.com>
>---
> container/osimage/openeuler/create-image | 40 ++++++++++++++++++++++++
> 1 file changed, 40 insertions(+)
> create mode 100755 container/osimage/openeuler/create-image
>
>diff --git a/container/osimage/openeuler/create-image b/container/osimage/openeuler/create-image
>new file mode 100755
>index 0000000..58fe0b1
>--- /dev/null
>+++ b/container/osimage/openeuler/create-image
>@@ -0,0 +1,40 @@
>+#!/bin/bash
>+# SPDX-License-Identifier: MulanPSL-2.0+
>+# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.
>+
>+install_packages()
>+{
>+ yum repolist
>+ yum -y install --skip-broken $(</tmp/packages-to-install)
>+ yum clean all
>+}
>+
where use /tmp/file-to-exclude
Thanks,
Shenwei
>+setup_rootfs()
>+{
>+ ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
>+ rm -f /etc/machine-id
>+ rm -f /var/lib/dbus/machine-id
>+ systemd-machine-id-setup
>+}
>+
>+
>+setup_login() {
>+ [ -n "$ROOT_PASSWD" ] || return
>+ echo "Changing root password"
>+ passwd_md5=$(openssl passwd -1 "$ROOT_PASSWD")
>+ sed -i -r "s/^root:[^:]*:(.*)/root:${passwd_md5//\//\\/}:\1/" "$ROOTFS_DIR/etc/shadow"
>+
>+ sed -i 's/[# ]PermitRootLogin.*/PermitRootLogin yes/' "$ROOTFS_DIR/etc/ssh/sshd_config"
>+}
>+
>+pack_cgz()
>+{
>+ echo "Packing package. Please wait."
>+ find / ! -path "/tmp/${IMAGE_NAME}" | grep -vf /tmp/files-to-exclude | cpio -o -Hnewc | gzip -9 > /tmp/${IMAGE_NAME}
>+ chmod 644 /tmp/${IMAGE_NAME}
>+}
>+
>+install_packages
>+setup_rootfs
>+setup_login
>+pack_cgz
>--
>2.23.0
>