User Container Images¶
General Principles¶
The registry variables are read by the reemo-provision Ansible role.
REGISTRY_URL: registry URL (e.g., registry.reemo.io)
REGISTRY_ENV: the prefix allowing the Ansible role to build image names in the format REGISTRY_ENV chromium
REGISTRY_USERNAME: username provided by Reemo support
REGISTRY_PASSWORD: password provided by Reemo support
Example resulting image: registry.reemo.io/reemosbchromium:latest
Note
Optimization: The Ansible role lets you finely customize Docker image preloading (Relay, Provisioning, and air-gapped modes). To configure your own variables, refer directly to the dedicated section at the bottom of the page: Image Preloading (Image Warmup).
Tip
Check disk space on each node. Image loading may require several GB of free space.
Online Mode¶
All machines connect directly to the Reemo registry.
Requirements¶
HTTPS access open to registry.reemo.io:443.
Credentials provided by Reemo support.
Minimal Inventory¶
all:
vars:
REGISTRY_URL: "registry.reemo.io"
REGISTRY_ENV: "reemosb"
REGISTRY_USERNAME: "user"
REGISTRY_PASSWORD: "password"
Quick Checks¶
Verify the registry login (from a node):
docker login registry.reemo.io
Verify the prefix being used (example):
docker pull registry.reemo.io/reemosbchromium:latest
Confirm the image is present locally:
docker image ls
Proxy Mode¶
Nodes access the registry through an HTTP/HTTPS proxy.
Use the same inventory configuration as in Online mode.
To declare the proxy in the Docker service:
Add the following line to the [Service] section of
/usr/lib/systemd/system/docker.service
EnvironmentFile=/etc/default/docker
Create the file
/etc/default/dockerand fill in the following information:
http_proxy="http://< Proxy server IP >:< Proxy service port >"
https_proxy="http://< Proxy server IP >:< Proxy service port >"
On the proxy, allow access to the following URLs:
registry.reemo.io
registry-auth.reemo.io
Offline Mode¶
A bridge machine with Internet access retrieves the images, then you preload them elsewhere (nodes or private registry).
Scenario A: Distributed Tarballs¶
On the bridge machine:
docker login registry.reemo.io
docker pull registry.reemo.io/reemosbchrome:latest
docker save registry.reemo.io/reemosbchrome:latest > /tmp/reemosbchrome_latest.tar
Transfer the .tar files to the nodes, then load them on the node:
docker load < reemosbchrome_latest.tar
Scenario B: Intermediate Private Registry¶
The bridge machine pulls from registry.reemo.io then pushes to your private registry.
On the nodes, configure:
REGISTRY_URL: "<your_private_registry>"
REGISTRY_ENV: "<your_namespace>"
REGISTRY_USERNAME: "<user_if_required>"
REGISTRY_PASSWORD: "<password_if_required>"
You can then run the installation in Online mode against your private registry.
Image Preloading (Image Warmup)¶
The Ansible role can preload (pull) Docker images before deployment to speed up container startup times and preserve bandwidth during critical phases.
Note
Preloading automatically disables if LOAD_IMAGE: true (typical for air-gapped configurations using local archives).
PROVISION_IMAGE_WARMUP¶
List of images to preload for isolated provisioning sessions.
Default value:
PROVISION_IMAGE_WARMUP:
- "registry.reemo.io/reemosbchromium"
Dynamic Targeting Logic:
Unlike a fixed group, the role inspects the host’s groups to detect its provisioning prefix (provision, provision1, provision2, etc.) and applies the following rule:
If the
<prefix>_workergroup exists and contains hosts: only these worker nodes perform the preloading.Otherwise (no worker defined): nodes in the
<prefix>_managergroup handle the preloading.
This ensures that the warmup runs exclusively on the machines that will actually spin up the containers (whether you are using a small Manager-only topology or a distributed architecture).
Override Examples¶
Override these variables in your group_vars or host_vars to manage rollback versions, or a private mirror with pinned image versions:
# group_vars/provision_worker.yml
PROVISION_IMAGE_WARMUP:
- "registry.company.local/reemosbchromium:2.8.0" # Internal mirror + pinned version
- "registry.reemo.io/reemosbfirefox:2.8.0" # Alternative sandbox
LOAD_IMAGE¶
To completely disable image preloading (typically for air-gapped environments without Internet access):
LOAD_IMAGE: true
By default, this variable is set to false.