Your data. Anywhere you go.

New Relic for iOS or Android


Download on the App Store    Android App on Google play


New Relic Insights App for iOS


Download on the App Store


Learn more

Close icon

Relic Solution: Using the Containerized Private Minion with a Private Image Registry

levelup

#1

Currently we have the Containerized Private Minion image hosted on the quay.io image registry by default, or alternatively on docker hub:

If you use an alternative registry like docker hub, you’ll need to also set the environment variable MINION_DOCKER_RUNNER_REGISTRY_ENDPOINT so that minion is able to pull the synthetics-minion-runner image from the same registry when it starts up.

The synthetics-minion-runner is the image that is used for runner containers which Scripted and Browser monitor checks are performed in. More on runners here:

If your network environment though requires explicit allow listing of external IPs this can become a problem as both quay.io and docker hub use CDNs to distribute image resources.

An alternative then is to obtain the synthetics-minion and synthetics-minion-runner images on an intermediate device outside of that network context, and then host them in private registry in the locked down context.

To demonstrate this process we can use the docker registry image

Create a registry - for local demonstration

docker run -d -p 5000:5000 --restart=always --name test-registry registry:2

Pull synthetics-minion from quay.io

docker pull quay.io/newrelic/synthetics-minion:2.2.15

Tag the synthetics-minion image for the new registry

docker tag quay.io/newrelic/synthetics-minion:2.2.15  localhost:5000/newrelic/synthetics-minion:2.2.15

Push synthetics-minion to the new registry

docker push localhost:5000/newrelic/synthetics-minion:2.2.15

Pull synthetics-minion-runner from quay.io. Note the runner has to be the same version as the minion

docker pull quay.io/newrelic/synthetics-minion-runner:2.2.15

Tag synthetics-minion-runner image for the new registry

docker tag quay.io/newrelic/synthetics-minion-runner:2.2.15 localhost:5000/newrelic/synthetics-minion-runner:2.2.15

Push synthetics-minion-runner to the new registry

docker push localhost:5000/newrelic/synthetics-minion-runner:2.2.15

Run the minion

docker run -d -e  MINION_PRIVATE_LOCATION_KEY=<your-location-key> \ 
 -e "MINION_LOG_LEVEL=debug"  \
 -e "MINION_DOCKER_RUNNER_REGISTRY_ENDPOINT=localhost:5000" \ 
 -v /tmp:/tmp:rw  \
 -v /var/run/docker.sock:/var/run/docker.sock:rw \
 -p 8080:8080 -p 8180:8180 \
 localhost:5000/newrelic/synthetics-minion:2.2.5

More on deploying a private registry here: https://docs.docker.com/registry/deploying/