<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:fh="http://purl.org/syndication/history/1.0">
  <title>Posts tagged: docker Archive</title>
  <id>https://pype.dev/tags/docker/archive/atom.xml</id>
  <updated>2025-12-29T05:33:05Z</updated>
  <subtitle>All posts with the tag &#34;docker&#34;</subtitle>
  <link href="https://pype.dev/tags/docker/" rel="alternate" type="text/html"></link>
  <link href="https://pype.dev/tags/docker/archive/atom.xml" rel="self" type="application/atom+xml"></link>
  <link href="https://pype.dev/tags/docker/atom.xml" rel="current" type="application/atom+xml"></link>
  <author>
    <name>Nic Payne</name>
  </author>
  <generator uri="https://github.com/WaylonWalker/markata-go">markata-go</generator>
  <fh:complete></fh:complete>
  <entry>
    <title>Prettier Docker ‘ps’ Command</title>
    <id>https://pype.dev/prettier-docker-ps-command/</id>
    <updated>2025-12-29T05:33:05Z</updated>
    <published>2025-12-29T05:33:05Z</published>
    <link href="https://pype.dev/prettier-docker-ps-command/" rel="alternate" type="text/html"></link>
    <summary type="text">The command is very useful, but I hate reading the output. Turns out, you can make it prettier:</summary>
    <content type="html">&lt;p&gt;The &lt;code&gt;docker ps&lt;/code&gt; command is very useful, but I hate reading the output. Turns&#xA;out, you can make it prettier:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;docker ps&lt;/code&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ndash;format &amp;ldquo;table&amp;rdquo; is implied with the command.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;❯ docker ps --format &amp;quot;table&amp;quot; | grep can&#xA;9b716a7d1ab0   postgres:17                                               &amp;quot;docker-entrypoint.s…&amp;quot;   13 hours ago    Up 13 hours (healthy)            0.0.0.0:5432-&amp;gt;5432/tcp, [::]:5432-&amp;gt;5432/tcp                                                cannalyzer-db-1&#xA;f7708ea0c112   adminer                                                   &amp;quot;entrypoint.sh docke…&amp;quot;   13 hours ago    Up 13 hours                      0.0.0.0:8081-&amp;gt;8080/tcp, [::]:8081-&amp;gt;8080/tcp                                                cannalyzer-adminer-1&#xA;93cd67719ed4   frontend:latest                                           &amp;quot;/docker-entrypoint.…&amp;quot;   13 hours ago    Up 13 hours                      0.0.0.0:5173-&amp;gt;80/tcp, [::]:5173-&amp;gt;80/tcp                                                    cannalyzer-frontend-1&#xA;f517625fca98   traefik:3.0                                               &amp;quot;/entrypoint.sh --pr…&amp;quot;   13 hours ago    Up 13 hours                      0.0.0.0:80-&amp;gt;80/tcp, [::]:80-&amp;gt;80/tcp, 0.0.0.0:8090-&amp;gt;8080/tcp, [::]:8090-&amp;gt;8080/tcp           cannalyzer-proxy-1&#xA;f4daa036216e   schickling/mailcatcher                                    &amp;quot;sh -c &#39;mailcatcher …&amp;quot;   13 hours ago    Up 13 hours                      0.0.0.0:1025-&amp;gt;1025/tcp, [::]:1025-&amp;gt;1025/tcp, 0.0.0.0:1080-&amp;gt;1080/tcp, [::]:1080-&amp;gt;1080/tcp   cannalyzer-mailcatcher-1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;But you can pass a template string to the &lt;code&gt;--format&lt;/code&gt; option, like so:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;docker ps --format &amp;quot;table {{.Names}}&amp;quot;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;✗ docker ps --format &amp;quot;table {{.Names}}&amp;quot; | grep can&#xA;cannalyzer-db-1&#xA;cannalyzer-adminer-1&#xA;cannalyzer-frontend-1&#xA;cannalyzer-proxy-1&#xA;cannalyzer-mailcatcher-1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&lt;code&gt;docker ps --format &amp;quot;table {{.Names}}\t{{.Status}}\t{{.Ports}}&amp;quot;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;❯ docker ps --format &amp;quot;table {{.Names}}\t{{.Ports}}&amp;quot; | grep can&#xA;cannalyzer-db-1             0.0.0.0:5432-&amp;gt;5432/tcp, [::]:5432-&amp;gt;5432/tcp&#xA;cannalyzer-adminer-1        0.0.0.0:8081-&amp;gt;8080/tcp, [::]:8081-&amp;gt;8080/tcp&#xA;cannalyzer-frontend-1       0.0.0.0:5173-&amp;gt;80/tcp, [::]:5173-&amp;gt;80/tcp&#xA;cannalyzer-proxy-1          0.0.0.0:80-&amp;gt;80/tcp, [::]:80-&amp;gt;80/tcp, 0.0.0.0:8090-&amp;gt;8080/tcp, [::]:8090-&amp;gt;8080/tcp&#xA;cannalyzer-mailcatcher-1    0.0.0.0:1025-&amp;gt;1025/tcp, [::]:1025-&amp;gt;1025/tcp, 0.0.0.0:1080-&amp;gt;1080/tcp, [::]:1080-&amp;gt;1080/tcp&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;picture&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Picture&lt;/span&gt; &lt;a href=&#34;#picture&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I noticed my template isn&amp;rsquo;t folding the codeblocks in a way that actually makes this post look like I&amp;rsquo;m lying!&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;img src=&#34;https://cdn.statically.io/gh/pypeaday/images.pype.dev/main/blog-media/20251229122717_67e76a67.png&#34; alt=&#34;20251229122717_67e76a67.png&#34;&gt;&#xA;&lt;/figure&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Docker | Atuin Docs</title>
    <id>https://pype.dev/thoughts-871/</id>
    <updated>2025-11-22T20:58:59Z</updated>
    <published>2025-11-22T20:58:59Z</published>
    <link href="https://pype.dev/thoughts-871/" rel="alternate" type="text/html"></link>
    <summary type="text">A 2-fer... So I want to host atuin and share shell history across my machines on my tailnet I think... it&#39;s such a nice</summary>
    <content type="html">&lt;a href=&#34;https://docs.atuin.sh/self-hosting/docker/#using-systemd-to-manage-your-atuin-server&#34;&gt;&#xA;    &lt;img&#xA;        src=&#34;https://shots.wayl.one/shot/?url=https://docs.atuin.sh/self-hosting/docker/#using-systemd-to-manage-your-atuin-server&amp;height=450&amp;width=800&amp;scaled_width=800&amp;scaled_height=450&amp;selectors=&#34;&#xA;        alt=&#34;shot of post - Docker | Atuin Docs&#34;&#xA;        height=450&#xA;        width=800&#xA;    &gt;&#xA;&lt;/a&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s my thought on &lt;a href=&#34;https://docs.atuin.sh/self-hosting/docker/#using-systemd-to-manage-your-atuin-server&#34;&gt;Docker | Atuin Docs&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;A 2-fer&amp;hellip; So I want to host atuin and share shell history across my machines on my tailnet I think&amp;hellip; it&amp;rsquo;s such a nice interface but I barely use it so I&amp;rsquo;m sure the features will improve some aspects of my life. And secondly, this section on using systemd is interesting&amp;hellip; I hadn&amp;rsquo;t thought to use systemd to schedule container upgrades - sounds incredibly trivial and probably a widely practiced thing now that I say it out loud&amp;hellip; Saving here for implementing something&amp;hellip; sometime&amp;hellip;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This is one of [[ my-thoughts ]]. I picked this up from &lt;a href=&#34;https://waylonwalker.com&#34;&gt;Waylon Walker&lt;/a&gt;(&lt;a href=&#34;https://thoughts.waylonwalker.com&#34;&gt;https://thoughts.waylonwalker.com&lt;/a&gt;). It&amp;rsquo;s a short note that I make about someone else&amp;rsquo;s content online.  Learn more about the process &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;My thoughts are found at my thoughts feed&#34; data-date=&#34;2025-06-09&#34; data-preview=&#34;My thoughts are found at my thoughts feed&#34;&gt;Thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Docker Swarm Still Rocks</title>
    <id>https://pype.dev/thoughts-812/</id>
    <updated>2025-08-26T14:43:44Z</updated>
    <published>2025-08-26T14:43:44Z</published>
    <link href="https://pype.dev/thoughts-812/" rel="alternate" type="text/html"></link>
    <summary type="text">Apparently docker swarm is still a thing and now I have to try it</summary>
    <content type="html">&lt;a href=&#34;https://dockerswarmstill.rocks/&#34;&gt;&#xA;    &lt;img&#xA;        src=&#34;https://shots.wayl.one/shot/?url=https://dockerswarmstill.rocks/&amp;height=450&amp;width=800&amp;scaled_width=800&amp;scaled_height=450&amp;selectors=&#34;&#xA;        alt=&#34;shot of post - Docker Swarm Still Rocks&#34;&#xA;        height=450&#xA;        width=800&#xA;    &gt;&#xA;&lt;/a&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s my thought on &lt;a href=&#34;https://dockerswarmstill.rocks/&#34;&gt;Docker Swarm Still Rocks&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Apparently &lt;a href=&#34;/docker/&#34; class=&#34;glossary-term&#34; title=&#34;docker - container runtime&#34; data-hover-title=&#34;docker&#34;&gt;docker&lt;/a&gt; swarm is still a thing and now I have to try it&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This is one of [[ my-thoughts ]]. I picked this up from &lt;a href=&#34;https://waylonwalker.com&#34;&gt;Waylon Walker&lt;/a&gt;(&lt;a href=&#34;https://thoughts.waylonwalker.com&#34;&gt;https://thoughts.waylonwalker.com&lt;/a&gt;). It&amp;rsquo;s a short note that I make about someone else&amp;rsquo;s content online.  Learn more about the process &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;My thoughts are found at my thoughts feed&#34; data-date=&#34;2025-06-09&#34; data-preview=&#34;My thoughts are found at my thoughts feed&#34;&gt;Thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Docker Volume Mounts Link to an Inode</title>
    <id>https://pype.dev/docker-volume-mounts-link-to-an-inode/</id>
    <updated>2025-08-02T13:01:58Z</updated>
    <published>2025-08-02T13:01:58Z</published>
    <link href="https://pype.dev/docker-volume-mounts-link-to-an-inode/" rel="alternate" type="text/html"></link>
    <summary type="text">docker bind mounts are specified as filepaths - this is very intuitive. I want /path/to/directory on my host to be shared with /another/path/foo in a...</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;/docker/&#34; class=&#34;glossary-term&#34; title=&#34;docker - container runtime&#34; data-hover-title=&#34;docker&#34;&gt;docker&lt;/a&gt; bind mounts are specified as filepaths - this is very intuitive. I want&#xA;/path/to/directory on my host to be shared with /another/path/foo in a&#xA;container. But what if /path/to/directory on the host is moved?&lt;/p&gt;&#xA;&lt;p&gt;This is a situation I have found myself in at home and it turns out that I&amp;rsquo;m&#xA;actually in almost zero trouble thankfully&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;TLDR - I have a bunch of compose stacks in&#xA;/home/projects/homelab-compose/&lt;host&gt;/&lt;application&gt; and I want to move them to&#xA;/home/projects/homelap-mono/compose/&lt;host&gt;/&lt;application&gt;&lt;/p&gt;&#xA;&lt;p&gt;I don&amp;rsquo;t want to take down all my stacks to do this because I don&amp;rsquo;t yet have a&#xA;convenient way to do it - but can I just &lt;code&gt;mv .../homelab-compose .../homelab-mono/compose&lt;/code&gt; and be done with it?&lt;/p&gt;&#xA;&lt;p&gt;The issue is that some of my stacks use local volume mounts - ie. there is a&#xA;data volume on the host in&#xA;/home/projects/homelab-compose/&lt;host&gt;&lt;application&gt;/docker-data for some of the&#xA;applications&amp;hellip; can I just move everything and docker is nonethewiser?&lt;/p&gt;&#xA;&lt;p&gt;Turns out the answer is mostly &lt;code&gt;yes&lt;/code&gt; with some caveats to keep in mind..&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s start with why it works and then show an example&amp;hellip;&lt;/p&gt;&#xA;&lt;h2 id=&#34;why&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Why&lt;/span&gt; &lt;a href=&#34;#why&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This works because of how docker interprets the bind mount location initially&#xA;and with how &lt;code&gt;mv&lt;/code&gt; is different from &lt;code&gt;cp&lt;/code&gt;. When you speicify a volume mount for&#xA;docker, the engine determines which &lt;a href=&#34;/inode/&#34; class=&#34;wikilink&#34; data-title=&#34;inode&#34; data-description=&#34;Index Nodes (inode) is a data structure that stores information about a file or directory, such as its size, permissions, ownership, and disk block...&#34; data-date=&#34;2025-08-03&#34; data-preview=&#34;Index Nodes (inode) is a data structure that stores information about a file or directory, such as its size, permissions, ownership, and disk block...&#34;&gt;inode&lt;/a&gt; contains the metadata for the&#xA;filesystem object referenced by the original volume path &lt;code&gt;/path/to/directory&lt;/code&gt;.&#xA;I think about this like a string path is a pointer to a lower level identifier&#xA;closer to the filesystem - if that pointer changes it doesn&amp;rsquo;t affect the&#xA;pre-existing &lt;a href=&#34;/inode/&#34; class=&#34;glossary-term&#34; title=&#34;Index Nodes (inode) is a data structure that stores information about a file or directory, such as its size, permissions, ownership, and disk block...&#34; data-hover-title=&#34;inode&#34;&gt;inode&lt;/a&gt; or data. So docker uses the inode that &lt;code&gt;/path/to/directory&lt;/code&gt;&#xA;points to when the container starts up.&lt;/p&gt;&#xA;&lt;p&gt;The slight convenience in my case is that &lt;code&gt;mv&lt;/code&gt; maintains the existing inode and&#xA;so the new filepath is irrelevant to that existing container that was spun up&#xA;with a now-non-existent host filepath.&lt;/p&gt;&#xA;&lt;p&gt;So if you can imagine then - I spun up several containers in&#xA;&lt;code&gt;///homelab-compose/...&lt;/code&gt; with many stacks - and I want to just move all the&#xA;config files to new repo&amp;hellip; thankfully, I actually can &lt;em&gt;just &lt;code&gt;mv&lt;/code&gt;&lt;/em&gt; everything&#xA;and because the &lt;code&gt;inode&lt;/code&gt; locations dont&amp;rsquo; change, the stacks are fine!&lt;/p&gt;&#xA;&lt;div class=&#34;admonition warning&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;caveat&lt;/p&gt;&#xA;&lt;p&gt;Is the next issue apparent? What happens to those files whose volume mount configurations specify &amp;hellip;/homelab-compose/&amp;hellip;? Well, if the stacks are brought down and back up then docker will create that filepath on the host and a new inode reference will be had by all&amp;hellip; so that&amp;rsquo;s a problem easily mitigated by some string replacement!&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;another note&lt;/p&gt;&#xA;&lt;p&gt;Perhaps just don&amp;rsquo;t keep data next to your configuration either&amp;hellip; In most of my stacks I have a determined docker volume that&amp;rsquo;s backed up etc. on my hosts and that&amp;rsquo;s what I&amp;rsquo;m moving towards on my desktop, but as of right now I&amp;rsquo;ve put myself in an odd situation via not participating in a proper thinking exercise when standing up all these stacks on my desktop&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;example&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Example&lt;/span&gt; &lt;a href=&#34;#example&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Finally let&amp;rsquo;s just see it in action quickly&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;I have a directory &lt;code&gt;/tmp/foo/source&lt;/code&gt; with a compose file in it.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;❯ tree source       &#xA;source&#xA;└── docker-compose.yml&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;That file is simple:&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;services&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;app&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;nginx&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ports&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;s2&#34;&gt;&amp;#34;8070:80&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;volumes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;/tmp/foo/source:/usr/share/nginx/html&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now I can spin that container up, exec in, drop a file in &lt;code&gt;/usr/share/nginx/html&lt;/code&gt; and we&amp;rsquo;ll see it in &lt;code&gt;/tmp/foo/source&lt;/code&gt; as expected&amp;hellip;&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in /tmp/foo   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ docker &lt;span class=&#34;nb&#34;&gt;exec&lt;/span&gt; source-app-1 touch /usr/share/nginx/html/file.txt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in /tmp/foo   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ tree &lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt;                                                       &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── docker-compose.yml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── file.txt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; directory, &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt; files&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now let&amp;rsquo;s &lt;code&gt;mv&lt;/code&gt; the &lt;code&gt;source&lt;/code&gt; directory somewhere else and see what happens&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;nic in /tmp/foo   (dev)&#xA;❯ mv source target &#xA;&#xA;nic in /tmp/foo   (dev)&#xA;❯ tree target &#xA;target&#xA;└── source&#xA;    ├── docker-compose.yml&#xA;    └── file.txt&#xA;&#xA;2 directories, 2 files&#xA;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;OK everything is there - now let&amp;rsquo;s drop another file in the container - remember the compose file still has the host path as &lt;code&gt;/tmp/foo/source&lt;/code&gt;, not &lt;code&gt;/tmp/foo/target/source&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;nic in /tmp/foo   (dev)&#xA;❯ docker exec source-app-1 touch /usr/share/nginx/html/another-file.txt&#xA;&#xA;nic in /tmp/foo   (dev)&#xA;❯ tree target                                                          &#xA;target&#xA;└── source&#xA;    ├── another-file.txt  # BAM! New file still here...&#xA;    ├── docker-compose.yml&#xA;    └── file.txt&#xA;&#xA;2 directories, 3 files&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;few-things&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Few Things&lt;/span&gt; &lt;a href=&#34;#few-things&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;cp&lt;/code&gt; as noted before, creates new &lt;code&gt;inodes&lt;/code&gt; and so if I were to have &lt;code&gt;cp -r&lt;/code&gt;&#xA;that &lt;code&gt;source&lt;/code&gt; directory to &lt;code&gt;target&lt;/code&gt; then the container would&amp;rsquo;ve dropped&#xA;er exec source-app-1 touch /usr/share/nginx/html/another-file.txc in /tmp/foo   (dev) 󰒄 󱔎 NO PYTHON ENVIORNMENT SET t&#xA;&lt;code&gt;another-file.txt&lt;/code&gt; to &lt;code&gt;/tmp/source&lt;/code&gt; and we&amp;rsquo;d be in a pretty confusing state&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Let me stress again the importance of managing your docker volumes in a sane&#xA;way&amp;hellip; I have on any of my hosts a &lt;code&gt;/path/to/docker/data&lt;/code&gt; which is backed up&#xA;in a way that makes sense for the host (usually zfs + sanoid, otherwise restic&#xA;backup TO a remote zfs dataset - see&#xA;&lt;a href=&#34;/using-restic-to-backup-my-home-directory/#Intro&#34; class=&#34;wikilink&#34; data-title=&#34;Using restic to backup my home directory&#34; data-description=&#34;I need to backup my personal $HOME to my NAS cause there&amp;#39;s a lot in there, and mostly my git projects with .env files all over. Plus some docker data&#34; data-date=&#34;2025-07-16&#34;&gt;Using restic to backup my home directory&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Docker Brings Compose to the AI Agent Era | Docker</title>
    <id>https://pype.dev/thoughts-746/</id>
    <updated>2025-07-11T11:49:41Z</updated>
    <published>2025-07-11T11:49:41Z</published>
    <link href="https://pype.dev/thoughts-746/" rel="alternate" type="text/html"></link>
    <summary type="text">Seems like docker is leaning harder into compose - which is great for me as a heavy compose user. I had heard about some</summary>
    <content type="html">&lt;a href=&#34;https://www.docker.com/blog/build-ai-agents-with-docker-compose/&#34;&gt;&#xA;    &lt;img&#xA;        src=&#34;https://shots.wayl.one/shot/?url=https://www.docker.com/blog/build-ai-agents-with-docker-compose/&amp;height=450&amp;width=800&amp;scaled_width=800&amp;scaled_height=450&amp;selectors=&#34;&#xA;        alt=&#34;shot of post - Docker Brings Compose to the AI Agent Era | Docker&#34;&#xA;        height=450&#xA;        width=800&#xA;    &gt;&#xA;&lt;/a&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s my thought on &lt;a href=&#34;https://www.docker.com/blog/build-ai-agents-with-docker-compose/&#34;&gt;Docker Brings Compose to the AI Agent Era | Docker&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Seems like &lt;a href=&#34;/docker/&#34; class=&#34;glossary-term&#34; title=&#34;docker - container runtime&#34; data-hover-title=&#34;docker&#34;&gt;docker&lt;/a&gt; is leaning harder into compose - which is great for me as a heavy compose user. I had heard about some of the LLM enablements directly through docker desktop - for example taking fuller advantage of the host&amp;rsquo;s compute power without paying the penalty of the nvidia runtime or something&amp;hellip; I can&amp;rsquo;t claim to have followed it all but I heard &amp;ldquo;run LLMs in docker directly for a bigger boost&amp;rdquo; and I&amp;rsquo;m in.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This is one of [[ my-thoughts ]]. I picked this up from &lt;a href=&#34;https://waylonwalker.com&#34;&gt;Waylon Walker&lt;/a&gt;(&lt;a href=&#34;https://thoughts.waylonwalker.com&#34;&gt;https://thoughts.waylonwalker.com&lt;/a&gt;). It&amp;rsquo;s a short note that I make about someone else&amp;rsquo;s content online.  Learn more about the process &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;My thoughts are found at my thoughts feed&#34; data-date=&#34;2025-06-09&#34; data-preview=&#34;My thoughts are found at my thoughts feed&#34;&gt;Thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Jellyfin container updates for HWE + AMD</title>
    <id>https://pype.dev/jellyfin-container-updates-for-hwe-amd/</id>
    <updated>2024-12-14T11:27:15Z</updated>
    <published>2024-12-14T11:27:15Z</published>
    <link href="https://pype.dev/jellyfin-container-updates-for-hwe-amd/" rel="alternate" type="text/html"></link>
    <summary type="text">I use LSIO Jelyfin container for the easy addon they provide for AMD GPUs but I couldn&#39;t get trickplay to work with HWE...</summary>
    <content type="html">&lt;p&gt;I use LSIO Jelyfin container for the easy addon they provide for AMD GPUs but I couldn&amp;rsquo;t get trickplay to work with HWE&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;There was almost NOTHING on the internet about the error, and all the threads were about BSD systems&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Thankfully someone posted &lt;a href=&#34;https://forum.jellyfin.org/t-jellyfin-amd-docker&#34;&gt;on the formum here&lt;/a&gt; but the only answer was to literally upgrade stuff in the container&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Someday maybe I&amp;rsquo;ll build off of LSIO to add this, but until then I shell&amp;rsquo;d in and homelab&amp;rsquo;d the hell out of it&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;THIS IS INSIDE THE CONTAINER - I use Portianer to make it easy&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;apt update &amp;amp;&amp;amp; apt install -y curl gpg&#xA;&#xA;mkdir -p /etc/apt/keyrings&#xA;&#xA;curl -fsSL https://repo.radeon.com/rocm/rocm.gpg.key | gpg --dearmor -o /etc/apt/keyrings/rocm.gpg&#xA;&#xA;cat &amp;lt;&amp;lt;EOF | tee /etc/apt/sources.list.d/rocm.sources&#xA;&#xA;Types: deb&#xA;&#xA;URIs: https://repo.radeon.com/rocm/apt/latest&#xA;&#xA;Suites: ubuntu&#xA;&#xA;Components: main&#xA;&#xA;Architectures: amd64&#xA;&#xA;Signed-By: /etc/apt/keyrings/rocm.gpg&#xA;&#xA;EOF&#xA;&#xA;apt update &amp;amp;&amp;amp; apt install -y rocm-opencl-runtime&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Adding docker daemon.json broke docker</title>
    <id>https://pype.dev/adding-docker-daemon-json-broke-docker/</id>
    <updated>2022-12-21T10:02:25Z</updated>
    <published>2022-12-21T10:02:25Z</published>
    <link href="https://pype.dev/adding-docker-daemon-json-broke-docker/" rel="alternate" type="text/html"></link>
    <summary type="text">in /lib/systemd/system/docker.service there is an ExecStart command that got placed there when I setup Docker with Ansible - it threw the -H flag which told...</summary>
    <content type="html">&lt;p&gt;in /lib/systemd/system/&lt;a href=&#34;/docker/&#34; class=&#34;glossary-term&#34; title=&#34;docker - container runtime&#34; data-hover-title=&#34;docker&#34;&gt;docker&lt;/a&gt;.service there is an ExecStart command that got placed there when I setup Docker with Ansible - it threw the -H flag which told the daemon what hosts to setup. But I added the &amp;ldquo;hosts&amp;rdquo; key in my daemon.json and it broke - so removing the -H flag from the systemd unit fixed it&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Cron for Nextcloud in Docker</title>
    <id>https://pype.dev/cron-for-nextcloud-in-docker/</id>
    <updated>2022-12-13T06:43:45Z</updated>
    <published>2022-12-13T06:43:45Z</published>
    <link href="https://pype.dev/cron-for-nextcloud-in-docker/" rel="alternate" type="text/html"></link>
    <summary type="text">AJAX wasn&#39;t cutting it, traditional crontab in containers doesn&#39;t make much sense to me, webcron is recommended but I don&#39;t want to register with anything...</summary>
    <content type="html">&lt;p&gt;AJAX wasn&amp;rsquo;t cutting it, traditional crontab in containers doesn&amp;rsquo;t make much&#xA;sense to me, webcron is recommended but I don&amp;rsquo;t want to register with anything&#xA;outside my LAN&amp;hellip; Turns out you can just spin up an identical container with a&#xA;different entrypoint to /cron.sh that does what you need!&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Note that this is a task in an Ansible playbook - but the &lt;a href=&#34;/docker/&#34; class=&#34;glossary-term&#34; title=&#34;docker - container runtime&#34; data-hover-title=&#34;docker&#34;&gt;docker&lt;/a&gt;-compose is straight forward&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;So the only thing you need to make sure of is that &lt;em&gt;all&lt;/em&gt; the configuration&#xA;options - data volumes, user permissions, etc. are &lt;em&gt;identical&lt;/em&gt; between the&#xA;containers running the cron job and the one actually hosting NextCloud. This&#xA;ensures that the container running cron has proper access to the database and&#xA;filesystem - or at least the same access as NextCloud proper.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Nextcloud Cron Docker Container&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;docker_container&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;nextcloud-cron&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;{{ nextcloud_image }}&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pull&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;links&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;nextcloud-mysql:mysql&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;entrypoint&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/cron.sh&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;volumes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;s2&#34;&gt;&amp;#34;{{ nextcloud_data_directory }}/nextcloud:/var/www/html:rw&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;env&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;MYSQL_HOST&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;mysql&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;MYSQL_DATABASE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;nextcloud&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;MYSQL_USER&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;{{ nextcloud_sql_user }}&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;MYSQL_PASSWORD&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;{{ nextcloud_sql_password }}&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;NEXTCLOUD_TRUSTED_DOMAINS&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;{{ nextcloud_hostname }}.{{ ansible_nas_domain }}&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;PUID&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;{{ nextcloud_user_id }}&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;PGID&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;{{ nextcloud_group_id }}&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;TZ&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;{{ ansible_nas_timezone }}&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;restart_policy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;unless-stopped&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;memory&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;{{ nextcloud_memory }}&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
</feed>