Github messages for voidlinux
 help / color / mirror / Atom feed
From: ahesford <ahesford@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Closed]: docker: Fix service startup under WSL2
Date: Sat, 14 Oct 2023 16:56:11 +0200	[thread overview]
Message-ID: <20231014145611.O5isLz20Bg1201mOYIFJ2SkT52pGkCCYtTWX9aeIJRA@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-46667@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 3276 bytes --]

There's a closed pull request on the void-packages repository

docker: Fix service startup under WSL2
https://github.com/void-linux/void-packages/pull/46667

Description:
#### Testing the changes
- I tested the changes in this PR: **YES** (`xlint docker` + `./xbps-src pkg -Q docker`)
- I tested that the Docker service is working under WSL: **YES** (see below)

```
PS C:\Users\Cheeba> wsl -u root bash -ic "cat /etc/sv/docker/run"
#!/bin/sh
exec 2>&1
[ -r conf ] && . ./conf
modprobe -q loop || exit 1
mountpoint -q /sys/fs/cgroup/systemd || {
    mkdir -p /sys/fs/cgroup/systemd;
    mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd;
}
exec chpst -o 1048576 -p 1048576 dockerd $OPTS 2>&1
PS C:\Users\Cheeba> wsl -u root bash -ic "sv status docker"
down: docker: 0s, normally up, want up; run: log: (pid 170) 12s
PS C:\Users\Cheeba> wsl -u root bash -ic "sv restart docker"
timeout: down: docker: 0s, normally up, want up
PS C:\Users\Cheeba> wsl -u root bash -ic "vim /etc/sv/docker/run"
PS C:\Users\Cheeba> wsl -u root bash -ic "cat /etc/sv/docker/run"
#!/bin/sh
exec 2>&1
[ -r conf ] && . ./conf

if [ -d /lib/modules ]; then
    modprobe -q loop || exit 1
fi

mountpoint -q /sys/fs/cgroup/systemd || {
    mkdir -p /sys/fs/cgroup/systemd;
    mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd;
}
exec chpst -o 1048576 -p 1048576 dockerd $OPTS 2>&1
PS C:\Users\Cheeba> wsl -u root bash -ic "sv restart docker"
ok: run: docker: (pid 477) 0s
PS C:\Users\Cheeba> wsl -u root bash -ic "sv status docker"
run: docker: (pid 477) 2s; run: log: (pid 170) 62s
PS C:\Users\Cheeba> wsl -u root bash -ic "docker ps"
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
PS C:\Users\Cheeba> wsl -u root bash -ic "docker version"
Client:
 Version:           24.0.6
 API version:       1.43
 Go version:        go1.21.0
 Git commit:        tag v24.0.6
 Built:             Wed Sep  6 13:42:27 2023
 OS/Arch:           linux/amd64
 Context:           default

Server:
 Engine:
  Version:          24.0.6
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.21.0
  Git commit:       tag v24.0.6
  Built:            Wed Sep  6 13:42:27 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.7.7
  GitCommit:        UNSET
 runc:
  Version:          1.1.9
  GitCommit:
 docker-init:
  Version:          0.19.0
  GitCommit:
PS C:\Users\Cheeba>
```

#### Motivation behind the changes

I played around with using Void Linux under WSL2 and struggled to get the Docker service started up. Eventually I realized that the `modprobe -q loop` command would *always* fail under WSL2, because there is no directory `/lib/modules`, so `modprobe` is essentially useless under WSL2. I think there are other mechanisms involved when loading the WSL2 kernel and modules. Either way, Docker runs very well with these changes.

I understand that Void Linux is not officially supported by Microsoft (and probably vice-versa), and there's manual steps involved installing it, but I thought why not make Docker run for everybody nonetheless?

These changes should make the Docker service run both natively and under WSL2.

  parent reply	other threads:[~2023-10-14 14:56 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-13 21:15 [PR PATCH] " thetredev
2023-10-14  7:31 ` classabbyamp
2023-10-14 12:27 ` thetredev
2023-10-14 14:56 ` ahesford
2023-10-14 14:56 ` ahesford [this message]
2023-10-14 15:02 ` ahesford
2023-10-14 15:02 ` ahesford
2023-10-14 15:55 ` thetredev
2023-10-14 16:00 ` [PR PATCH] [Updated] " thetredev
2023-10-14 16:08 ` [PR REVIEW] docker: Parameterize loading the loop kernel module ahesford
2023-10-14 16:08 ` thetredev
2023-10-14 16:11 ` [PR PATCH] [Updated] " thetredev
2023-10-14 16:11 ` [PR REVIEW] " thetredev
2023-10-14 16:13 ` thetredev
2023-10-14 16:26 ` thetredev
2024-03-09 22:53 ` [PR PATCH] [Updated] " thetredev
2024-03-09 22:53 ` thetredev
2024-03-11  0:25 ` [PR PATCH] [Updated] " thetredev
2024-03-11  0:30 ` thetredev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231014145611.O5isLz20Bg1201mOYIFJ2SkT52pGkCCYtTWX9aeIJRA@z \
    --to=ahesford@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).