Thicket data repository for the EEG
at main 2.6 kB view raw
1{ 2 "id": "https://www.tunbury.org/2025/04/01/go-docker", 3 "title": "Updating Docker and Go", 4 "link": "https://www.tunbury.org/2025/04/01/go-docker/", 5 "updated": "2025-04-01T00:00:00", 6 "published": "2025-04-01T00:00:00", 7 "summary": "For some time, we have had issues on Ubuntu Noble when extracting tar files within Docker containers. See ocaml/infrastructure#121. This is only an issue on exotic architectures like RISCV and PPC64LE.", 8 "content": "<p>For some time, we have had issues on Ubuntu Noble when extracting\ntar files within Docker containers. See\n<a href=\"https://github.com/ocaml/infrastructure/issues/121\">ocaml/infrastructure#121</a>.\nThis is only an issue on exotic architectures like RISCV and PPC64LE.</p>\n\n<div><div><pre><code><span># docker run --rm -it ubuntu:noble</span>\nroot@cf3491db4abd:/# <span>cd\n</span>root@cf3491db4abd:~# <span>mkdir </span>foo\nroot@cf3491db4abd:~# <span>tar</span> <span>-cf</span> bar.tar foo\nroot@cf3491db4abd:~# <span>rmdir </span>foo\nroot@cf3491db4abd:~# <span>tar</span> <span>-xf</span> bar.tar\n<span>tar</span>: foo: Cannot change mode to rwxr-xr-x: Operation not permitted\n<span>tar</span>: Exiting with failure status due to previous errors\n</code></pre></div></div>\n\n<p>The combination of Docker version and <code>libseccomp2</code> version prevents\nthe container from running the <code>fchmodat2</code> system call. There is a\nbug report on Ubuntu’s bug tracker for the issue.</p>\n\n<p>I have been working around this by building Docker from scratch.</p>\n\n<div><div><pre><code>apt <span>install </span>golang\ngit clone https://github.com/moby/moby\n<span>cd </span>moby\n<span>AUTO_GOPATH</span><span>=</span>1 ./hack/make.sh binary\n<span>mv </span>bundles/binary-daemon/<span>*</span> /usr/bin/\nservice docker restart\n</code></pre></div></div>\n\n<p>When provisioning some new RISCV machines, I have once again hit this\nissue, but now the version of Go installed by <code>apt</code> on Ubuntu Noble is\ntoo old to build Docker!</p>\n\n<div><div><pre><code>go: vendor.mod requires go &gt;= 1.23.0 (running go 1.22.2; GOTOOLCHAIN=local)\n</code></pre></div></div>\n\n<p>As this needs to be repeated multiple times, it makes sense\nto wrap the installation steps into an Ansible Playbook.\n<a href=\"https://gist.github.com/mtelvers/ced9d981b9137c491c95780390ce802c\">golang+docker.yml</a></p>", 9 "content_type": "html", 10 "author": { 11 "name": "Mark Elvers", 12 "email": "mark.elvers@tunbury.org", 13 "uri": null 14 }, 15 "categories": [ 16 "docker,go", 17 "tunbury.org" 18 ], 19 "source": "https://www.tunbury.org/atom.xml" 20}