Mailing List Archive

Jekyll on Gentoo using containers
Hello list,

I'm trying to set a container up to run jekyll to build a blog, following a
suggestion at the bottom of https://github.com/gentoo-ev/www.gentoo.de.
This is my first foray into containers.

So far I've installed lxc and followed https://wiki.gentoo.org/wiki/LXC as far
as I can, but I'm now a bit stuck. Well, just stuck, actually.

Jekyll is installed, and I want to create a blog in ~/common/myblog.

First, do I need to mount a FUSE file system? Where?

Next, I run

$ sudo /etc/init.d/docker start

...and get this:

$ cat /var/log/docker.log | cut -d \ -f 2- [to omit date & time]
level=info msg="Starting up"
level=error msg="failed to mount overlay: no such device" storage-driver=overlay2
level=error msg="exec: \"fuse-overlayfs\": executable file not found in $PATH" storage-driver=fuse-overlayfs
level=error msg="Failed to built-in GetDriver graph btrfs /var/lib/docker"
level=info msg="Loading containers: start."
level=warning msg="Could not load necessary modules for IPSEC rules: protocol not supported"
level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
level=info msg="Loading containers: done."
level=warning msg="WARNING: No blkio throttle.read_bps_device support"
level=warning msg="WARNING: No blkio throttle.write_bps_device support"
level=warning msg="WARNING: No blkio throttle.read_iops_device support"
level=warning msg="WARNING: No blkio throttle.write_iops_device support"
level=info msg="Docker daemon" commit=4ffc61430bbe6d3d405bdf357b766bf303ff3cc5 graphdriver=vfs version=24.0.5
level=info msg="Daemon has completed initialization"
level=info msg="API listen on /var/run/docker.sock"

I assume lines 2 & 3 refer to a FUSE file system.

What is line 4 telling me to do?

I assme line 6 refers to IPv6, which is not used here.

What else do I need to do? As with much else Gentoo, it's hard to reach a
point where pertinent questions suggest themselves.

--
Regards,
Peter.
Re: Jekyll on Gentoo using containers [ In reply to ]
On Tue, 2023-08-29 at 15:31 +0100, Peter Humphrey wrote:
>
> $ cat /var/log/docker.log | cut -d \ -f 2- [to omit date & time]
> level=info msg="Starting up"
> level=error msg="failed to mount overlay: no such device" storage-driver=overlay2
> level=error msg="exec: \"fuse-overlayfs\": executable file not found in $PATH" storage-driver=fuse-overlayfs
> level=error msg="Failed to built-in GetDriver graph btrfs /var/lib/docker"
> level=info msg="Loading containers: start."
> level=warning msg="Could not load necessary modules for IPSEC rules: protocol not supported"
> level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
> level=info msg="Loading containers: done."
> level=warning msg="WARNING: No blkio throttle.read_bps_device support"
> level=warning msg="WARNING: No blkio throttle.write_bps_device support"
> level=warning msg="WARNING: No blkio throttle.read_iops_device support"
> level=warning msg="WARNING: No blkio throttle.write_iops_device support"
> level=info msg="Docker daemon" commit=4ffc61430bbe6d3d405bdf357b766bf303ff3cc5 graphdriver=vfs version=24.0.5
> level=info msg="Daemon has completed initialization"
> level=info msg="API listen on /var/run/docker.sock"
>

Let's start at the top.

When you built docker, did you get any feedback from Portage about
missing or incorrectly set kernel configuration options? Docker has a
strict list of things that it expects to be set (and not set) in your
kernel configuration, and portage should let you know what it isn't
happy about (at least it did in the past for me before correcting my
configs) when you emerge it.

Additionally, what USE flags do you have set for app-containers/docker?
Re: Jekyll on Gentoo using containers [ In reply to ]
On Tuesday, 29 August 2023 15:57:42 BST Matt Connell wrote:

> Let's start at the top.
>
> When you built docker, did you get any feedback from Portage about
> missing or incorrectly set kernel configuration options?

Not that I remember, no.

> Docker has a strict list of things that it expects to be set (and not set)
> in your kernel configuration, and portage should let you know what it isn't
> happy about (at least it did in the past for me before correcting my
> configs) when you emerge it.

> Additionally, what USE flags do you have set for app-containers/docker?

app-containers/docker-24.0.5::gentoo USE="container-init seccomp -apparmor -
btrfs -device-mapper -overlay (-selinux)"

--
Regards,
Peter.
Re: Jekyll on Gentoo using containers [ In reply to ]
On Tuesday, 29 August 2023 16:56:42 BST I wrote:
> On Tuesday, 29 August 2023 15:57:42 BST Matt Connell wrote:
> > Let's start at the top.
> >
> > When you built docker, did you get any feedback from Portage about
> > missing or incorrectly set kernel configuration options?
>
> Not that I remember, no.
>
> > Docker has a strict list of things that it expects to be set (and not set)
> > in your kernel configuration, and portage should let you know what it
> > isn't
> > happy about (at least it did in the past for me before correcting my
> > configs) when you emerge it.
> >
> > Additionally, what USE flags do you have set for app-containers/docker?
>
> app-containers/docker-24.0.5::gentoo USE="container-init seccomp -apparmor
> - btrfs -device-mapper -overlay (-selinux)"

Hah! I spotted the -btrfs as soon as I hit Send (of course).

Here's my /etc/portage/package.use/lxc:

app-containers/containerd btrfs
app-containers/docker btrfs overlay
app-containers/lxc examples man
sys-libs/libcap static-libs

--
Regards,
Peter.
Re: Jekyll on Gentoo using containers [ In reply to ]
On Tue, 2023-08-29 at 15:31 +0100, Peter Humphrey wrote:
> Hello list,
>
> I'm trying to set a container up to run jekyll to build a blog, following a
> suggestion at the bottom of https://github.com/gentoo-ev/www.gentoo.de.
> This is my first foray into containers.

The containers don't add anything of value here (or in most places
people use them). You can look at the Dockerfile in the github repo to
see what commands it uses to build the site. All you should have to do
is mimic that: emerge jekyll, and run "jekyll build" in the repo.

It builds a static site so you can open the resulting HTML right in
your browser without setting up a whole ass web server.
Re: Jekyll on Gentoo using containers [ In reply to ]
On Tuesday, 29 August 2023 17:08:46 BST Michael Orlitzky wrote:

> The containers don't add anything of value here (or in most places
> people use them).

I was wondering why I needed all that extra complication :)

> You can look at the Dockerfile in the github repo to see what commands it
> uses to build the site. All you should have to do is mimic that: emerge
> jekyll, and run "jekyll build" in the repo.

Can you point me to that file (privately if you prefer)? I've had a look around
and it doesn't reveal itself.

> It builds a static site so you can open the resulting HTML right in
> your browser without setting up a whole ass web server.

That's the attraction of Jekyll. The snag is that I can't install a Jekyll
theme without giving myself wholesale privileges over the Gentoo installation
of Ruby.

--
Regards,
Peter.
Re: Jekyll on Gentoo using containers [ In reply to ]
On Wed, 2023-08-30 at 11:51 +0100, Peter Humphrey wrote:
>
> Can you point me to that file (privately if you prefer)? I've had a look around
> and it doesn't reveal itself.

https://github.com/gentoo-ev/www.gentoo.de/blob/master/Dockerfile


>
> > It builds a static site so you can open the resulting HTML right in
> > your browser without setting up a whole ass web server.
>
> That's the attraction of Jekyll. The snag is that I can't install a Jekyll
> theme without giving myself wholesale privileges over the Gentoo installation
> of Ruby.

After you've installed jekyll, you should have rubygems available on
your system. Running

gem install <theme>

will install <theme> to your /.local/share/gem/ruby directory and make
it available to whatever version of ruby you ran the command with. I
tried it with "jekyll-theme-minimal" and it looks like it worked, but I
didn't go so far as to build a website with it.
Re: Jekyll on Gentoo using containers [ In reply to ]
I remember replying to this, but I can't find the reply anywhere. Did it get to
the list?

On Wednesday, 30 August 2023 14:59:17 BST Michael Orlitzky wrote:
> On Wed, 2023-08-30 at 11:51 +0100, Peter Humphrey wrote:
> > Can you point me to that file (privately if you prefer)? I've had a look
> > around and it doesn't reveal itself.
>
> https://github.com/gentoo-ev/www.gentoo.de/blob/master/Dockerfile
>
> > > It builds a static site so you can open the resulting HTML right in
> > > your browser without setting up a whole ass web server.
> >
> > That's the attraction of Jekyll. The snag is that I can't install a Jekyll
> > theme without giving myself wholesale privileges over the Gentoo
> > installation of Ruby.
>
> After you've installed jekyll, you should have rubygems available on
> your system. Running
>
> gem install <theme>
>
> will install <theme> to your /.local/share/gem/ruby directory and make
> it available to whatever version of ruby you ran the command with. I
> tried it with "jekyll-theme-minimal" and it looks like it worked, but I
> didn't go so far as to build a website with it.


--
Regards,
Peter.
Re: Jekyll on Gentoo using containers [ In reply to ]
On Thu, 2023-08-31 at 14:23 +0100, Peter Humphrey wrote:
> I remember replying to this, but I can't find the reply anywhere. Did it get to
> the list?

I don't think so.
Re: Jekyll on Gentoo using containers [ In reply to ]
On Wednesday, 30 August 2023 14:59:17 BST Michael Orlitzky wrote:
> On Wed, 2023-08-30 at 11:51 +0100, Peter Humphrey wrote:
> > Can you point me to that file (privately if you prefer)? I've had a look
> > around and it doesn't reveal itself.
>
> https://github.com/gentoo-ev/www.gentoo.de/blob/master/Dockerfile

Ah. I'd never have found that - thanks!

...>8

> After you've installed jekyll, you should have rubygems available on
> your system. Running
>
> gem install <theme>
>
> will install <theme> to your /.local/share/gem/ruby directory and make
> it available to whatever version of ruby you ran the command with. I
> tried it with "jekyll-theme-minimal" and it looks like it worked, but I
> didn't go so far as to build a website with it.

That does indeed seem to work - thanks again!

I've had to interpret a few things I'd found on the Web, including a .bashrc
snippet to include the gems directory in my $PATH; I've set it like this:

export GEM_HOME="$HOME/.local/share/gem/ruby"
export PATH="$HOME/.local/share/gem/ruby/bin:$PATH"

Now for the spade-work!

--
Regards,
Peter.
Re: Jekyll on Gentoo using containers [ In reply to ]
On Thursday, 31 August 2023 14:39:19 BST Michael Orlitzky wrote:
> On Thu, 2023-08-31 at 14:23 +0100, Peter Humphrey wrote:
> > I remember replying to this, but I can't find the reply anywhere. Did it
> > get to the list?
>
> I don't think so.

Soon corrected. I don't know what happened there.

--
Regards,
Peter.