Skip to content

Flexo with Docker

Fabian Muscariello edited this page Mar 5, 2023 · 2 revisions

A dockerized version of Flexo is available on Docker Hub.

Configuration

Check the commented TOML file to see which configuration options are provided by Flexo. Docker users will most likely prefer to use environment variables instead of the TOML file to configure Flexo. Therefore, Flexo provides for each setting found in the TOML file a corresponding environment variable. The environment variables have the FLEXO_ prefix, so for example, if you intend to configure the num_versions_retain setting, you would use the FLEXO_NUM_VERSIONS_RETAIN environment variable. If a setting is nested inside another setting in the TOML file, then the corresponding environment variable is the concatenation of both settings: For example, if you intend to configure the https_required setting that's nested inside mirrors_auto, then you would use the setting FLEXO_MIRRORS_AUTO_HTTPS_REQUIRED.

For completeness's sake, here's a list of all environment variables provided by Flexo (if in doubt, refer to the TOML file linked above, because new settings may be implemented and this wiki may not be up-to-date):

FLEXO_CACHE_DIRECTORY
FLEXO_CONNECT_TIMEOUT
FLEXO_CUSTOM_REPO
FLEXO_LISTEN_IP_ADDRESS
FLEXO_LOW_SPEED_LIMIT
FLEXO_LOW_SPEED_LIMIT_FORMATTED
FLEXO_LOW_SPEED_TIME_SECS
FLEXO_MAX_SPEED_LIMIT
FLEXO_MIRRORLIST_FALLBACK_FILE
FLEXO_MIRRORLIST_LATENCY_TEST_RESULTS_FILE
FLEXO_MIRRORS_AUTO_ALLOWED_COUNTRIES
FLEXO_MIRRORS_AUTO_HTTPS_REQUIRED
FLEXO_MIRRORS_AUTO_IPV4
FLEXO_MIRRORS_AUTO_IPV6
FLEXO_MIRRORS_AUTO_MAX_SCORE
FLEXO_MIRRORS_AUTO_MIRRORS_BLACKLIST
FLEXO_MIRRORS_AUTO_MIRRORS_RANDOM_OR_SORT
FLEXO_MIRRORS_AUTO_MIRRORS_STATUS_JSON_ENDPOINT
FLEXO_MIRRORS_AUTO_MIRRORS_STATUS_JSON_ENDPOINT_FALLBACKS
FLEXO_MIRRORS_AUTO_NUM_MIRRORS
FLEXO_MIRRORS_AUTO_TIMEOUT
FLEXO_MIRROR_SELECTION_METHOD
FLEXO_MIRRORS_PREDEFINED
FLEXO_NUM_VERSIONS_RETAIN
FLEXO_PORT
FLEXO_REFRESH_LATENCY_TESTS_AFTER

Docker example configurations

The following snippets can be included in a docker environment file and then passed via docker run --env-file my-environment-file

Use the mirror-auto-selection option to automatically select mirrors, but only mirrors from Germany or Austria:

FLEXO_MIRRORS_AUTO_ALLOWED_COUNTRIES=DE,AT
FLEXO_MIRROR_SELECTION_METHOD=auto

Disable the mirror-auto-selection option and instead choose mirrors from the given list:

FLEXO_MIRROR_SELECTION_METHOD=predefined
FLEXO_MIRRORS_PREDEFINED=['https://mirror.fra10.de.leaseweb.net/archlinux/', 'https://ftp.halifax.rwth-aachen.de/archlinux' ]
Clone this wiki locally