Trouble using gitlab-runner exec docker

I’m trying to create a Docker image for my build environment, and run a build locally by using gitlab-runner exec. Could someone please clarify for a n00b what concept I’ve gotten wrong?

My Docker image, named hughw/factordev:latest, is base Ubuntu 16.04, plus some libraries my build requires. The gitlab-runner successfully pulls that image, but then it seems that it does not attempt to execute the commands in my .gitlab-ci.yml on that image, but on the gitlab/gitlab-runner-helper image. So: is my expectation wrong? n00b here. I thought gitlab-runner would execute the make command on my image.

I am running this on macOS using the latest gitlab-runner and docker executables.

Here is a transcript of my attempt:

$ sudo gitlab-runner exec docker factor
WARNING: Since GitLab Runner 10.0 this command is marked as DEPRECATED and will be removed in one of upcoming releases 
Running with gitlab-runner 10.1.0 (c1ecf97f)
  on  ()
Using Docker executor with image hughw/factordev:latest ...
Using docker image sha256:a985c2d6958f9c6d0ae5a602ed006eecb383ca03e6fee13b4fa77075cc77e093 for predefined container...
Pulling docker image hughw/factordev:latest ...
Using docker image hughw/factordev:latest ID=sha256:3e3afaae764147fc4bf189f46744e2f85151499499b004274475cb9f4c51565a for build container...
Running on runner--project-0-concurrent-0 via hwmb4...
Cloning repository...
Cloning into '/builds/project-0'...
done.
Checking out f72f98c3 as master...
Skipping Git submodules setup
$ uname -a
Linux runner--project-0-concurrent-0 4.9.49-moby #1 SMP Wed Sep 27 23:17:17 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ pwd
/builds/project-0
$ make test-release-omp
/bin/bash: line 26: make: command not found
Running after script...
ERROR: Job failed: exit code 1
FATAL: exit code 1    

My complete .gitlab-ci.yml:

image: hughw/factordev:latest
before_script:
  - uname -a
  - pwd
  
factor:
  script:
  - make test-release-omp

My gitlab config.toml (something could be wrong in my set up, because gitlab-runner seemed to ignore the pull_policy… I had to push my image to Dockerhub before gitlab-runner would find it, despite my “never” setting).

$ sudo cat /etc/gitlab-runner/config.toml
concurrent = 1
check_interval = 0
[[runners]]
  name = "hwmb4"
  url = "https://gitlab.com"
  token = "{elided}"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "hughw/factordev:latest"
    privileged = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
    pull_policy = "never"
  [runners.cache]

Finally, here is the output of docker images:

$ docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-runner-helper   x86_64-c1ecf97f     a985c2d6958f        15 hours ago        43.8MB
hughw/factordev               latest              3e3afaae7641        18 hours ago        1.49GB
ubuntu                        16.04               747cb2d60bbe        2 weeks ago         122MB

Thanks in advance if anyone can point out my error.

[Edited to fix error in image attribute in config.toml, that still had no effect on the outcome]