Skip to content
ConfigurationRegistriesCustom

CUSTOM (Self-hosted Docker Registry)

The custom registry lets you configure a self-hosted Docker Registry integration.

logo

The custom registry lets you configure a self-hosted Docker Registry integration.

Variables

Env varRequiredDescriptionSupported valuesDefault value when missing
DD_REGISTRY_CUSTOM_{REGISTRY_NAME}_URL🔴Registry URL (e.g. https://registry.example.com)
DD_REGISTRY_CUSTOM_{REGISTRY_NAME}_LOGINLogin (when htpasswd auth is enabled on the registry)DD_REGISTRY_CUSTOM_{REGISTRY_NAME}_PASSWORD must be defined
DD_REGISTRY_CUSTOM_{REGISTRY_NAME}_PASSWORDPassword (when htpasswd auth is enabled on the registry)DD_REGISTRY_CUSTOM_{REGISTRY_NAME}_LOGIN must be defined
DD_REGISTRY_CUSTOM_{REGISTRY_NAME}_AUTHBase64-encoded login:password stringDD_REGISTRY_CUSTOM_{REGISTRY_NAME}_LOGIN/PASSWORD must not be defined
DD_REGISTRY_CUSTOM_{REGISTRY_NAME}_CAFILEPath to custom CA certificate file
DD_REGISTRY_CUSTOM_{REGISTRY_NAME}_INSECUREDisable HTTPS certificate validation (plain HTTP is selected by the registry URL scheme)true, falsefalse
DD_REGISTRY_CUSTOM_{REGISTRY_NAME}_CLIENTCERTPath to client certificate file for mTLS
DD_REGISTRY_CUSTOM_{REGISTRY_NAME}_CLIENTKEYPath to client key file for mTLSDD_REGISTRY_CUSTOM_{REGISTRY_NAME}_CLIENTCERT must be defined

Examples

Use a registry hostname that resolves from inside the Drydock container; localhost would refer to Drydock itself. The URL scheme selects HTTP or HTTPS. INSECURE=true only disables certificate validation for HTTPS—it does not enable HTTP or make a hostname reachable. Always use HTTPS when registry credentials are configured.

Configure for anonymous access

services:
  drydock:
    image: codeswhat/drydock
    ...
    environment:
      - DD_REGISTRY_CUSTOM_PRIVATE_URL=https://registry.example.com
docker run \
  -e "DD_REGISTRY_CUSTOM_PRIVATE_URL=https://registry.example.com" \
  ...
  codeswhat/drydock

Configure for Basic Auth

services:
  drydock:
    image: codeswhat/drydock
    ...
    environment:
      - DD_REGISTRY_CUSTOM_PRIVATE_URL=https://registry.example.com
      - DD_REGISTRY_CUSTOM_PRIVATE_LOGIN=john
      - DD_REGISTRY_CUSTOM_PRIVATE_PASSWORD=doe
docker run \
  -e "DD_REGISTRY_CUSTOM_PRIVATE_URL=https://registry.example.com" \
  -e "DD_REGISTRY_CUSTOM_PRIVATE_LOGIN=john" \
  -e "DD_REGISTRY_CUSTOM_PRIVATE_PASSWORD=doe" \
  ...
  codeswhat/drydock

Configure multiple custom registries

services:
  drydock:
    image: codeswhat/drydock
    ...
    environment:
      - DD_REGISTRY_CUSTOM_PRIVATE1_URL=https://registry-one.example.com
      - DD_REGISTRY_CUSTOM_PRIVATE1_LOGIN=john
      - DD_REGISTRY_CUSTOM_PRIVATE1_PASSWORD=doe
      - DD_REGISTRY_CUSTOM_PRIVATE2_URL=https://registry-two.example.com
      - DD_REGISTRY_CUSTOM_PRIVATE2_LOGIN=jane
      - DD_REGISTRY_CUSTOM_PRIVATE2_PASSWORD=doe
docker run \
  -e "DD_REGISTRY_CUSTOM_PRIVATE1_URL=https://registry-one.example.com" \
  -e "DD_REGISTRY_CUSTOM_PRIVATE1_LOGIN=john" \
  -e "DD_REGISTRY_CUSTOM_PRIVATE1_PASSWORD=doe" \
  -e "DD_REGISTRY_CUSTOM_PRIVATE2_URL=https://registry-two.example.com" \
  -e "DD_REGISTRY_CUSTOM_PRIVATE2_LOGIN=jane" \
  -e "DD_REGISTRY_CUSTOM_PRIVATE2_PASSWORD=doe" \
  ...
  codeswhat/drydock