- You are attempting to run the CPM from behind a firewall that doesn't allow access to our image repository at quay.io.
- You need to host the CPM images locally, but the minion fails to find the local runner image on startup and instead tries and fails to pull the image.
There are two images needed to run the CPM:
- newrelic/synthetics-minion-runner:1.2.3, where 1.2.3 matches the latest build number
Note, please don't use the image tagged
synthetics-minion-runner:latest, it is several years old and no longer maintained.
First, the main minion image needs to be obtained from either:
If you have Internet access from your network, you can pull it with:
docker pull newrelic/synthetics-minion:latest
Check our release notes to see which build is the latest, and pull the associated runner image. For example:
docker pull newrelic/synthetics-minion-runner:3.0.37
After pulling the minion runner image, make sure to tag it with the exact name the minion will look for after you issue the docker run command.
docker tag newrelic/synthetics-minion-runner:3.0.37 synthetics-minion-runner:3.0.37
The output of your
docker image ls should look like this:
REPOSITORY TAG IMAGE ID CREATED SIZE
newrelic/synthetics-minion latest 2d8761f38d6d 7 days ago 419MB
synthetics-minion-runner 3.0.37 f8c79797df53 8 days ago 2.82GB
newrelic/synthetics-minion-runner 3.0.37 f8c79797df53 8 days ago 2.82GB
Notice this one called synthetics-minion-runner:3.0.37. This will allow the minion to start up and avoid trying to pull the runner.
Finally, you can start the CPM with:
docker run \
--name YOUR_CONTAINER_NAME \
-e "MINION_PRIVATE_LOCATION_KEY=YOUR_PRIVATE_LOCATION_KEY" \
-v /tmp:/tmp:rw \
-v /var/run/docker.sock:/var/run/docker.sock:rw \
--restart unless-stopped \
If you've enabled debug logging with
-e MINION_LOG_LEVEL=DEBUG, you should see a log line that says:
DEBUG Using Docker Runner image: synthetics-minion-runner:3.0.37
DEBUG Checking ContainerSystemDriver health for the runner image synthetics-minion-runner:3.0.37, and fetching the image if necessary...
Regarding the last part of that log line...it will not be necessary.
An alternative to pulling the runner image manually is to configure your own image repository using the environment variable
MINION_DOCKER_RUNNER_REGISTRY_ENDPOINT. The minion will then be directed to automatically pull the runner image from your own repository at runtime. This makes for easier maintenance as the images can be updated in your repository and the minion will look there for new builds at runtime.
When the CPM starts up, it will look for the runner image with a name formatted like
synthetics-minion-runner:1.2.3. Note there is no
newrelic/ in front of the image name here.
If the runner image name is not tagged to be in exactly that format, the minion will attempt to pull the runner image, which will then fail due to the firewall.