2021-08-08 00:12:37 +00:00
|
|
|
# Bootstrapping a Houdini Instance Using Docker
|
|
|
|
|
2021-08-09 21:56:54 +00:00
|
|
|
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.
|
2021-08-08 00:12:37 +00:00
|
|
|
|
|
|
|
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.
|
2021-08-09 21:56:54 +00:00
|
|
|
|
|
|
|
## 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.
|