for-mac icon indicating copy to clipboard operation
for-mac copied to clipboard

Linuxkit in Docker desktop is missing kernel modules SQUASHFS and support for SQUASHFS_XZ Filesystem

Open srtimsina opened this issue 1 year ago • 4 comments

Description

Docker desktop for mac starting Docker version 4.26.0 is missing kernel modules SQUASHFS and support for SQUASHFS_XZ Filesystem, However in the release of Docker desktop, 4.27.0 they have added the kernel module SQUASHFS, however they have still missing support for SQUASHFS_XZ Filesystem, the issue is still persisting in the latest version of Docker Desktop 4.29.0.

In Docker desktop 4.25.2, where linuxkit kernel version (6.4.16-linuxkit), they have support for it. ` root@28d045845798:/home/ubuntu# zcat /proc/config.gz | grep -i squashfs CONFIG_SQUASHFS=y CONFIG_SQUASHFS_FILE_CACHE=y

CONFIG_SQUASHFS_FILE_DIRECT is not set

CONFIG_SQUASHFS_DECOMP_SINGLE=y

CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set

CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_ZLIB=y CONFIG_SQUASHFS_LZ4=y CONFIG_SQUASHFS_LZO=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZSTD=y

CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set

CONFIG_SQUASHFS_EMBEDDED is not set

CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3`

But in Docker desktop 4.26.0 where linuxkit kernel version 6.5.11-linuxkit, they have removed the SQUASHFS.

`root@0d8c9499fb3b:/home/ubuntu# zcat /proc/config.gz | grep -i squashfs

CONFIG_SQUASHFS is not set`

In Docker desktop 4.27.0, where the linuxkit kernel version 6.6.12-linuxkit, they have re-added SQUASHFS, but they have still miss the support for XZ filesystem.

`ubuntu@fe1e2ba98d8f:~$ zcat /proc/config.gz | grep -i SQUASHFS CONFIG_SQUASHFS=y CONFIG_SQUASHFS_FILE_CACHE=y

CONFIG_SQUASHFS_FILE_DIRECT is not set

CONFIG_SQUASHFS_DECOMP_SINGLE=y

CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set

CONFIG_SQUASHFS_XATTR is not set

CONFIG_SQUASHFS_ZLIB=y

CONFIG_SQUASHFS_LZ4 is not set

CONFIG_SQUASHFS_LZO is not set

CONFIG_SQUASHFS_XZ is not set

CONFIG_SQUASHFS_ZSTD is not set

CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set

CONFIG_SQUASHFS_EMBEDDED is not set

CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 `

The same behavior is seen in the latest Docker desktop version 4.29.0 with linuxkit kernel 6.6.22-linuxkit.

Are they going to add this module in future release?

Reproduce

Run any Ubuntu container in Docker Desktop for mac, 4.26.0 and later. Execute the following command. zcat /proc/config.gz | grep -i squashfs

Only the below is seen where most of the modules are not enabled. `ubuntu@fe1e2ba98d8f:~$ zcat /proc/config.gz | grep -i SQUASHFS CONFIG_SQUASHFS=y CONFIG_SQUASHFS_FILE_CACHE=y

CONFIG_SQUASHFS_FILE_DIRECT is not set

CONFIG_SQUASHFS_DECOMP_SINGLE=y

CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set

CONFIG_SQUASHFS_XATTR is not set

CONFIG_SQUASHFS_ZLIB=y

CONFIG_SQUASHFS_LZ4 is not set

CONFIG_SQUASHFS_LZO is not set

CONFIG_SQUASHFS_XZ is not set

CONFIG_SQUASHFS_ZSTD is not set

CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set

CONFIG_SQUASHFS_EMBEDDED is not set

CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3`

Expected behavior

Support for CONFIG_SQUASHFS_XZ must be enabled. Below is the output in Docker desktop version 4.25.2

`root@28d045845798:/home/ubuntu# zcat /proc/config.gz | grep -i squashfs CONFIG_SQUASHFS=y CONFIG_SQUASHFS_FILE_CACHE=y

CONFIG_SQUASHFS_FILE_DIRECT is not set

CONFIG_SQUASHFS_DECOMP_SINGLE=y

CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set

CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_ZLIB=y CONFIG_SQUASHFS_LZ4=y CONFIG_SQUASHFS_LZO=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZSTD=y

CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set

CONFIG_SQUASHFS_EMBEDDED is not set

CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3`

docker version

Latest Docker desktop for Mac OS. v4.29.0

docker info

I am running in the AMD based processor. Below information is after I reverted Docker desktop for Mac to v4.25.2.

srtimsina@NP-STI-MBP-01 artifacts % docker system info
Client:
 Version:    24.0.6
 Context:    desktop-linux
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.11.2-desktop.5
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.23.0-desktop.1
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-compose
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.0
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-dev
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.20
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-extension
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v0.1.0-beta.9
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-init
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-sbom
  scan: Docker Scan (Docker Inc.)
    Version:  v0.26.0
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-scan
  scout: Docker Scout (Docker Inc.)
    Version:  v1.0.9
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-scout

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 2
 Server Version: 24.0.6
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 8165feabfdfe38c65b599c4993d227328c231fca
 runc version: v1.1.8-0-g82f18fe
 init version: de40ad0
 Security Options:
  seccomp
   Profile: unconfined
  cgroupns
 Kernel Version: 6.4.16-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 7
 Total Memory: 13.66GiB
 Name: linuxkit-8e5a48dcf4ee
 ID: 523a87de-2c86-4928-8fd4-364644408afc
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: daemon is not using the default seccomp profile

Diagnostics ID

a

Additional Info

Is Docker discontinuing to add this support or this is a bug? How is the long term plan?

srtimsina avatar Apr 20 '24 16:04 srtimsina

@srtimsina Sorry for breaking your workflow! I'll put back that module and make sure we don't remove it in the future!

dgageot avatar Apr 22 '24 10:04 dgageot

Hi @dgageot , In which release of Docker desktop for Mac can we expect this module included, is this going to be added back in upcoming release?

srtimsina avatar Apr 22 '24 16:04 srtimsina

@srtimsina yes, it should come with 4.30.0

dgageot avatar Apr 22 '24 16:04 dgageot

@dgageot , that sounds great. Thank you so much! :)

srtimsina avatar Apr 22 '24 17:04 srtimsina

Closing this issue because a fix has been released in Docker Desktop 4.30.0 . See the release notes for more details.

chaizeg avatar May 06 '24 16:05 chaizeg