diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index fd5a9735bfaf..1f33dc907cf1 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -31,10 +31,15 @@ BUILD_SCRIPTS_DIR=files/build_scripts BUILD_TEMPLATES=files/build_templates IMAGE_CONFIGS=files/image_config SCRIPTS_DIR=files/scripts +DOCKER_SCRIPTS_DIR=files/docker + +DOCKER_CTL_DIR=/usr/lib/docker/ +DOCKER_CTL_SCRIPT="$DOCKER_CTL_DIR/docker.sh" # Define target fold macro FILESYSTEM_ROOT_USR="$FILESYSTEM_ROOT/usr" -FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM="$FILESYSTEM_ROOT/usr/lib/systemd/system" +FILESYSTEM_ROOT_USR_LIB="$FILESYSTEM_ROOT/usr/lib/" +FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM="$FILESYSTEM_ROOT_USR_LIB/systemd/system" FILESYSTEM_ROOT_USR_SHARE="$FILESYSTEM_ROOT_USR/share" FILESYSTEM_ROOT_USR_SHARE_SONIC="$FILESYSTEM_ROOT_USR_SHARE/sonic" FILESYSTEM_ROOT_USR_SHARE_SONIC_SCRIPTS="$FILESYSTEM_ROOT_USR_SHARE_SONIC/scripts" @@ -53,12 +58,14 @@ trap_push clean_sys sudo LANG=C chroot $FILESYSTEM_ROOT mount sysfs /sys -t sysfs sudo bash -c "echo \"DOCKER_OPTS=\"--storage-driver=overlay2\"\" >> $FILESYSTEM_ROOT/etc/default/docker" -sudo cp files/docker/docker $FILESYSTEM_ROOT/etc/init.d/ +# Copy docker start script to be able to start docker in chroot +sudo mkdir -p "$FILESYSTEM_ROOT/$DOCKER_CTL_DIR" +sudo cp $DOCKER_SCRIPTS_DIR/docker "$FILESYSTEM_ROOT/$DOCKER_CTL_SCRIPT" if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then SONIC_NATIVE_DOCKERD_FOR_DOCKERFS=" -H unix:///dockerfs/var/run/docker.sock " SONIC_NATIVE_DOCKERD_FOR_DOCKERFS_PID="cat `pwd`/dockerfs/var/run/docker.pid" else - sudo chroot $FILESYSTEM_ROOT service docker start + sudo chroot $FILESYSTEM_ROOT $DOCKER_CTL_SCRIPT start fi # Apply apt configuration files @@ -604,10 +611,9 @@ if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then sudo rm -fr $FILESYSTEM_ROOT/dockerfs sudo kill -9 `sudo $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS_PID` || true else - sudo chroot $FILESYSTEM_ROOT service docker stop + sudo chroot $FILESYSTEM_ROOT $DOCKER_CTL_SCRIPT stop fi sudo umount /proc || true -sudo rm $FILESYSTEM_ROOT/etc/init.d/docker sudo bash -c "echo { > $FILESYSTEM_ROOT_USR_SHARE_SONIC_TEMPLATES/ctr_image_names.json" {% for entry in feature_vs_image_names.split(' ') -%}