moby/pkg
Cory Snider 317d3d10b8 Revert "Use real chroot if daemon is running in a user namespace"
This change was introduced early in the development of rootless support,
before all the kinks were worked out and rootlesskit was built. The
author was testing the daemon by inside a user namespace set up by runc,
observed that the unshare(2) syscall was returning EPERM, and assumed
that it was a fundamental limitation of user namespaces. Seeing as the
kernel documentation (of today) disagrees with that assessment and that
unshare demonstrably works inside user namespaces, I can only assume
that the EPERM was due to a quirk of their test environment, such as a
seccomp filter set up by runc blocking the unshare syscall.
https://github.com/moby/moby/pull/20902#issuecomment-236409406

Mount namespaces are necessary to address #38995 and #43390. Revert the
special-casing so those issues can also be fixed for rootless daemons.

This reverts commit dc950567c1.

Signed-off-by: Cory Snider <csnider@mirantis.com>
2022-10-26 12:05:20 -04:00
..
aaparser Also trim "~..." from AppArmor versions 2020-10-08 17:03:51 -07:00
archive pkg/chrootarchive: stop reexec'ing before chroot 2022-10-26 12:05:13 -04:00
authorization pkg/*: fix "empty-lines" (revive) 2022-09-28 01:58:49 +02:00
broadcaster Various code-cleanup 2018-05-23 17:50:54 +02:00
capabilities Add more import comments 2019-04-10 16:59:33 +02:00
chrootarchive Revert "Use real chroot if daemon is running in a user namespace" 2022-10-26 12:05:20 -04:00
containerfs pkg/containerfs: drop ContainerFS type alias 2022-09-23 16:56:53 -04:00
devicemapper pkg/*: fix "empty-lines" (revive) 2022-09-28 01:58:49 +02:00
directory Merge pull request #44251 from thaJeztah/pkg_dir_cleanup 2022-10-15 22:48:19 +02:00
dmesg Use Klogctl from x/sys/unix to read Linux kernel log 2019-08-22 08:25:13 +02:00
fileutils pkg/fileutils: ReadSymlinkedDirectory: preserve underlying error 2022-10-16 20:15:08 +02:00
homedir Update to Go 1.17.0, and gofmt with Go 1.17 2021-08-24 23:33:27 +02:00
idtools pkg/idtools: remove CanAccess(), and move to daemon 2022-10-15 22:42:39 +02:00
ioutils pkg/*: fix "empty-lines" (revive) 2022-09-28 01:58:49 +02:00
jsonmessage pkg/jsonmessage: export "Stream" interface 2022-08-29 16:15:37 +02:00
longpath Add canonical import comment 2018-02-05 16:51:57 -05:00
loopback pkg/loopback: use ioctl helpers from x/sys/unix 2022-10-08 21:20:29 +02:00
namesgenerator pkg/*: fix "empty-lines" (revive) 2022-09-28 01:58:49 +02:00
parsers Merge pull request #43786 from thaJeztah/gofmt_119 2022-07-08 21:56:26 -07:00
pidfile pkg/pidfile: remove PIDFile type, rename New() to Write() 2022-10-15 16:40:16 +02:00
platform all: use unix.ByteSliceToString for utsname fields 2022-05-18 17:13:20 -07:00
plugingetter Move plugin client to separate interface 2018-05-30 15:22:10 -04:00
plugins pkg/*: fix "empty-lines" (revive) 2022-09-28 01:58:49 +02:00
pools bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
progress refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
reexec Merge pull request #44222 from thaJeztah/godoc_instead_of_readme 2022-10-10 00:06:17 -07:00
stack all: replace strings.Replace with strings.ReplaceAll 2022-05-09 19:45:40 +08:00
stdcopy refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
streamformatter bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
stringid pkg: replace some README's with GoDoc package descriptions 2022-09-30 17:11:37 +02:00
sysinfo pkg: replace some README's with GoDoc package descriptions 2022-09-30 17:11:37 +02:00
system Merge pull request #44302 from thaJeztah/sys_windows 2022-10-21 00:36:58 +02:00
tailfile pkg/*: fix "empty-lines" (revive) 2022-09-28 01:58:49 +02:00
tarsum pkg/*: fix "empty-lines" (revive) 2022-09-28 01:58:49 +02:00
useragent Add canonical import comment 2018-02-05 16:51:57 -05:00
README.md Rename a few docker to moby 2017-10-25 13:56:12 +02:00

pkg/ is a collection of utility packages used by the Moby project without being specific to its internals.

Utility packages are kept separate from the moby core codebase to keep it as small and concise as possible. If some utilities grow larger and their APIs stabilize, they may be moved to their own repository under the Moby organization, to facilitate re-use by other projects. However that is not the priority.

The directory pkg is named after the same directory in the camlistore project. Since Brad is a core Go maintainer, we thought it made sense to copy his methods for organizing Go code :) Thanks Brad!

Because utility packages are small and neatly separated from the rest of the codebase, they are a good place to start for aspiring maintainers and contributors. Get in touch if you want to help maintain them!