2b21fcfc30
Our goal in this document is to explain how to build virtually all the dependencies for Houdini from source (in part to vet licenses and easy AGPL compliance, but also to operate more securely). Initially, it won't be possible to do that so begin documenting places where items are not built from source.
64 lines
2.8 KiB
Markdown
64 lines
2.8 KiB
Markdown
# Bootstrapping a Houdini Instance Using Docker
|
|
|
|
This file complements [the existing docker documentation](docker.md). The
|
|
file documents, in great detail, how to bootstrap Houdini into a docker
|
|
image, primarily from source code wherever possible, from complete scratch.
|
|
Special attention was given to verifying the licensing requirements and
|
|
details, and to attempt to reproduce the creation of the Docker image from
|
|
scratch in the most complete way. Some of the instructions herein are not
|
|
specific to Houdini or Ruby on Rails applications at all; rather, they are
|
|
simply documentation of steps that at least one user went through to
|
|
bootstrap to a usable docker image.
|
|
|
|
Commands that were run as pure root have the `#` in front of them; commands
|
|
run as a regular user (which sometimes include `sudo`, so note that some of
|
|
them are run with system privileges) have a `$` in front of them.
|
|
|
|
## Creating a Base Image
|
|
|
|
Since most Docker images have copyleft license compliance problem, rather
|
|
than using a docker image from Docker's problematic repositories, we create
|
|
a Debian image from scratch. Using the
|
|
[instructions to create one's own base image](https://docs.docker.com/develop/develop-images/baseimages/),
|
|
along with
|
|
[Debian's deboostrap instructions](https://wiki.debian.org/Debootstrap), to
|
|
create a docker image of Debian's `bullseye` release.
|
|
|
|
# mkdir /srv/bullseye-base
|
|
# debootstrap bullseye /srv/bullseye-base http://deb.debian.org/debian/
|
|
$ sudo tar -C /srv/bullseye-base -c . | docker import - bullseye-base
|
|
|
|
If the last command gets the error …
|
|
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: …
|
|
… then likely the user account that you're using as a regular user is not in
|
|
the `docker` group.
|
|
|
|
This creates a docker image named `bullseye-base` on your system.
|
|
|
|
## Building Node 14 from Source
|
|
|
|
Currently, the default Docker image uses the Debian `nodejs` version
|
|
`14.17.4-deb-1nodesource1` as downloaded from this apt-source entry:
|
|
|
|
deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_14.x bullseye main
|
|
|
|
… which leads to this line in the apt-get output:
|
|
|
|
Get:9 https://deb.nodesource.com/node_14.x bullseye/main amd64 nodejs amd64 14.17.4-deb-1nodesource1 [25.0 MB]
|
|
|
|
We have not yet provided a method yet to bootstrap the necessary version of
|
|
Node from source.
|
|
|
|
## Building Yarn 14 from Source
|
|
|
|
Currently, the default Docker image uses the Debian `nodejs` version
|
|
`1.22.5-1` as downloaded from this apt-source entry:
|
|
|
|
deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_14.x bullseye main
|
|
|
|
… which leads to this line in the apt-get output:
|
|
|
|
Get:6 https://dl.yarnpkg.com/debian stable/main amd64 yarn all 1.22.5-1 [891 kB]
|
|
|
|
We have not provided a method yet to bootstrap the necessary version of
|
|
Yarn from source.
|